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

メール送信系のロジックをテストする際に、メールを送らない方法をメモします。
テスト用にダミーアドレスを用意している場合は、送信したらホストエラーになってしまうし、送信しないようにすると、テストを通せない・・。
しかし、ファサードのMailを使うことによって、
テスト時にメールを送らないようにすることができるらしいので超絶便利です。
書き方はこんな感じ。テスト処理の前に書いておけばOK!
// 実際にはメールを送らないように設定
Mail::fake();
// メールが送られていないことを確認
Mail::assertNothingSent();
なお、useを忘れずに。
use Illuminate\Support\Facades\Mail;
メールロジックのテストには必須ですね。
今回は以上です!