我得到了错误
错误:调用未定义的方法 Illuminate\Events\Dispatcher::assertDispatched()
为了测试
<?php
namespace Tests\Unit;
use Tests\TestCase;
use App\Entities\Requester;
use App\Observers\RequesterObserver;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
class RequesterObserverTest extends TestCase {
use RefreshDatabase;
public function setUp()
{
parent::setUp();
Mail::fake();
}
public function testRequesterCreationTriggersObserver(){
$expected = factory(Requester::class)->create();
//assert the creation event observer is fired
Event::assertDispatched(RequesterObserver::class, function($event) use ($expected){
return $event->requester->email_id === $expected->email_id;
});
}
}
该方法已按照 Laravel 5.5 文档中的说明使用,当我在 Debug模式下运行时,我确实看到了实际事件被触发,但是测试在这一行给出了错误
Event::assertDispatched(RequesterObserver::class, function($event) use ($expected)
最佳答案
您的 testRequesterCreationTriggersObserver() 函数中缺少 Event::fake()
调用。
关于php - 事件分派(dispatch)器断言找不到 assertDispatched 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310201/