我在测试时使用阵列缓存驱动程序,但是我想禁用缓存事件。
我可以用
做到这一点$this->withoutEvents();
我宁愿停止一个事件,不过
$this->expectsEvents(Illuminate\Cache\Events\KeyForgotten::class);
如果未调用该事件,将抛出错误。
一个解决方案是在外部允许事件触发并隐藏它的功能,但如果事件没有发生则不会抛出错误。
我想我需要像这样嘲笑Events Dispatcher
$mock = Mockery::mock('Illuminate\Contracts\Events\Dispatcher');
$mock->shouldReceive('fire')->andReturnUsing(function ($called) {
$this->firedEvents[] = $called;
});
$this->app->instance('events', $mock);
return $this;
问题是如何继续调度未捕获的事件?