remarkablemark/rector-laravel-service-mocking
最新稳定版本:3.0.0
Composer 安装命令:
composer require --dev remarkablemark/rector-laravel-service-mocking
包简介
Rector to replace deprecated Laravel service mocking testing methods
README 文档
README
Rector to replace deprecated Laravel service mocking testing methods such as expectsEvents, expectsJobs, and expectsNotifications.
From Laravel 10:
The deprecated
MocksApplicationServicestrait has been removed from the framework. This trait provided testing methods such asexpectsEvents,expectsJobs, andexpectsNotifications.If your application uses these methods, we recommend you transition to
Event::fake,Bus::fake, andNotification::fake, respectively. You can learn more about mocking via fakes in the corresponding documentation for the component you are attempting to fake.
Requirements
PHP >=8.2
Install
Install with Composer:
composer require --dev rector/rector remarkablemark/rector-laravel-service-mocking
Usage
Register the rule in rector.php:
<?php declare(strict_types=1); use Rector\Config\RectorConfig; use Remarkablemark\RectorLaravelServiceMocking\LaravelServiceMockingRector; return static function (RectorConfig $rectorConfig): void { $rectorConfig->paths([ __DIR__ . '/tests', ]); $rectorConfig->rule(LaravelServiceMockingRector::class); };
See the diff:
vendor/bin/rector process --dry-run
Apply the rule:
vendor/bin/rector process
Clear the cache and apply the rule:
vendor/bin/rector process --clear-cache
Rule
Before
$this->expectsEvents([MyEvent::class]);
After
\Illuminate\Support\Facades\Event::fake([MyEvent::class])->assertDispatched([MyEvent::class]);
The test may still fail because of assertDispatched so it's recommended to refactor to:
Event::fake([MyEvent::class]); // dispatch your event here... Event::assertDispatched(MyEvent::class);
If you have multiple events, call assertDispatched for each event:
Event::fake([MyEvent1::class, MyEvent2::class]); // ... Event::assertDispatched(MyEvent1::class); Event::assertDispatched(MyEvent2::class);
License
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-12-11