Laravelのユニットテスト時にメールを送らない方法

2024.06.14 09:00
2024.06.14 10:27
Laravelのユニットテスト時にメールを送らない方法

メール送信系のロジックをテストする際に、メールを送らない方法をメモします。

テスト用にダミーアドレスを用意している場合は、送信したらホストエラーになってしまうし、送信しないようにすると、テストを通せない・・。

しかし、ファサードのMailを使うことによって、
テスト時にメールを送らないようにすることができるらしいので超絶便利です。

書き方はこんな感じ。テスト処理の前に書いておけばOK!

// 実際にはメールを送らないように設定
Mail::fake();

// メールが送られていないことを確認
Mail::assertNothingSent();

なお、useを忘れずに。

use Illuminate\Support\Facades\Mail;

メールロジックのテストには必須ですね。

今回は以上です!