Laravel测试没有激活缓存事件

时间:2016-03-31 18:40:00

标签: laravel testing laravel-5.2 laravel-testing

我在测试时使用阵列缓存驱动程序,但是我想禁用缓存事件。

我可以用

做到这一点
$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;

问题是如何继续调度未捕获的事件?

0 个答案:

没有答案