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