2016-04-04 11 views
0

私はlaravel 5で電子メールをテストしようとしています。メールが送信されているときはいつもというイベントが発生することがわかりました。Laravel 5のテストでイベントを聴くには?

私は初心者ですから、このイベントを聞いて基本メッセージオブジェクトを取り出す方法を理解するのに困っていますか?

私はこれを試してみましたが、私はこれが正しいとしていない。

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'; 
    }); 
} 

それに応じてテストケースとトリガーコード内の特定のイベントを聞くには?

+0

https://laravel.com/docs/5.2/testing#mocking-events – ceejayoz

+0

左私がしようとしていない午前同じ – Rohan

答えて

0

LaravelはexpectsEvents方法を提供:https://laravel.com/docs/5.2/testing#mocking-events

$this->expectsEvents(Illuminate\Mail\Events\MessageSending::class); 
+0

についての回答にコメントモックイベント。実際、私は電子メールを送信する前にそれを捕まえようとしているところで高レベルの機能テストをしようとしていますし、件名、本文などが特定の方法であると主張しています。だからこそ、電子メールを送信してアサーションを実行する前に電子メールをトラップする方法を探しています。 – Rohan

+0

@Rohanその場合、Mail機能のLaravel独自のテストを最もよく調べるかもしれません。 https://github.com/laravel/framework/blob/5.2/tests/Mail/MailMessageTest.php – ceejayoz

関連する問題