Как прослушать события в тестах в Laravel 5?

Я пытаюсь проверить электронную почту в Laravel 5, и я понял, что Swift_Mailer триггеры Illuminate\Mail\Events\MessageSending событие всякий раз, когда отправляется письмо.

Но так как я новичок, у меня возникли проблемы с пониманием того, как прослушать это событие и извлечь базовый объект сообщения?

Я пробовал это, но я не это правильно:

public function test_the_email_via_listening_to_message_sending_event()
{
    $user = factory(User::class)->create();
    Event::fire(new UserWasCreated($user));

    Event::listen(Illuminate\Mail\Events\MessageSending::class, function($message){
        echo 'Hello';
    });
}

Как прослушать конкретное событие в тестовом примере и вызвать код в ответ на него?

1 ответ

Laravel обеспечивает expectsEvents метод: https://laravel.com/docs/5.2/testing

$this->expectsEvents(Illuminate\Mail\Events\MessageSending::class);
Другие вопросы по тегам