1
我已經完成了按隊列發送郵件的代碼,並且它工作正常,我想爲它編寫一個測試(只想測試應該正常發送的郵件而不排隊失敗,和正確的人),但如何?如何用laravel隊列郵件編寫單元測試?
Mail::to($user->email)->queue(new Welcome($user));
我已經完成了按隊列發送郵件的代碼,並且它工作正常,我想爲它編寫一個測試(只想測試應該正常發送的郵件而不排隊失敗,和正確的人),但如何?如何用laravel隊列郵件編寫單元測試?
Mail::to($user->email)->queue(new Welcome($user));
現在我使用的是MailTracking測試郵件 https://gist.github.com/anonymous/6e802e56af1f19d53464d667b3e6aa48
你會做這樣的事情(根據您的設置):
<?php
namespace Tests\Feature;
use App\User;
use App\Mail\Welcome;
use Illuminate\Support\Facades\Mail;
class SendInvitationEmailTest extends TestCase
{
/** @test */
function mails_get_queued()
{
Mail::fake();
$user = factory(User::class)->create();
$this->post('/route/to/send/the/welcome/mail');
Mail::assertQueued(Welcome::class, 1);
Mail::assertQueued(Welcome::class, function ($mail) use ($user) {
return $mail->user->id === $user->id;
});
}
}
既然你已經使用了外牆你可以使用'Mocking'來查找哪些文檔[這裏](https://laravel.com/docs/5.4/mocking)。 – milo526