事件调度程序断言未能找到 assertDispatched 事件

Ana*_*sra 2 php laravel laravel-5

我收到错误

Error: Call to undefined method 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;
    });

  }
}
Run Code Online (Sandbox Code Playgroud)

该方法已按照 Laravel 5.5 文档中的说明使用,当我在调试模式下运行时,我确实看到了正在触发的实际事件,但是测试在这一行给出了错误

Event::assertDispatched(RequesterObserver::class, function($event) use ($expected)
Run Code Online (Sandbox Code Playgroud)

小智 5

您缺少Event::fake()testRequesterCreationTriggersObserver() 函数中的调用。