我試圖在Laravel 5.4的瀏覽器測試中測試郵件。用Laravel 5.4(黃昏)嘲笑郵件
我有這樣的代碼在InvitationTest
類browse
回調函數內:
\Mail::fake();
$browser->visit('projects')
->press('etc.')
\Mail::assertSent(InvitationMail::class, function ($mail) use ($project) {
return $mail->invitation->project->id == $project->id;
});
我可以看到郵件日誌發送:
[2017年4月6日15:36 :10] local.INFO:邀請xxxx-yyyy-zzz-aa-bb開始
[2017-04-06 15:36:10] local.DEBUG:Message-ID:<[email protected]>
Date :星期四,2017年4月6日15點36分10秒+0200
主題:世界你好:)
但運行php artisan dusk
我:
1)測試\瀏覽器\ InvitationTest :: testCreateInvitation
預期[應用程序\ Mail \ InvitationMail] mailable沒有發送。
失敗斷言虛假是真實的。
郵件排隊,但是,在我.env.dusk.local
我已經設置隊列同步(和郵件記錄):
QUEUE_DRIVER=sync
MAIL_DRIVER=log
所以一切都要被罰款。難道我做錯了什麼?爲什麼黃昏說郵件沒有發送?
重要說明:郵件不是通過控制器直接發送的,但會創建延遲作業,並且該作業將發送郵件。延遲的工作是在過去發送的,因此可能沒有影響。要明確:控制器派遣一個工作,然後這個工作發送多個郵件。
https://hackernoon.com/asserting-jobs-in-queue-with-laravel-dusk-adb03654ca43 –