【Laravel】テストでassertRedirect()の後にassertSeeText()を実行するとエラーになる問題の解決方法

Twikmark(https://twikmark.com/)では、ログインしていない状態でブックマークページを開こうとするとトップページへリダイレクトするようにしている。

その動作をテストしようと思って以下のコードを書いたらエラーでテストが通らなかった。

assertSeeText()が通らないテストコード
上記テストで発生したエラーのメッセージ

assertRedirect()は「指定のURIへリダイレクトすること」をチェックするだけであってリダレクトそのものを行ってくれるわけではないことが原因(リダイレクトしていないから確認したい文言が存在せずにエラーになる)。

assertRedirect

クライアントが指定したURIへリダイレクトすることを宣言。

https://readouble.com/laravel/7.x/ja/http-tests.html#assert-redirect

なので、assertRedirect()の後に明示的にget()でページ移動をしてやるとassertSeeText()が通るようになる。

assertSeeText()が通るテストコード
上記テストの結果

参考

https://nijibox.jp/blog/laraveltest_beginner/#in1

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です