BETA

LaravelのPHPUnitテストで419(csrf token mismatch)が出た場合の対処法

投稿日:2020-02-13
最終更新:2020-02-14

新しい機能の追加をしていて、最後のチェックとしてPHPUnitテスト機能を使ってテストしたところ、変更をかけていない(たぶん・・・)既存の機能についてエラーが出ました。日本語記事を見かけなかったので、書きます。英語記事はあった。

エラー内容

There was 1 error:  

1) Tests\Feature\ModelTest::testLike  
Illuminate\Session\TokenMismatchException: CSRF token mismatch.  
There were 2 failures:  

1) Tests\Feature\ModelTest::testUser  
Response status code [419] is not a redirect status code.  
Failed asserting that false is true.  

それぞれのエラーは別の機能で出ているんですが、いずれもcsrf token関係みたいです。
bladeでのエラーなら@csrfを追加するなどの解決方法がすぐ浮かびますが、PHPUnitテスト機能でこのエラーが出たので、少し手間取りました。

解決策

キャッシュをクリアしてから実行したところ、上記エラーは出なくなり、テストは成功しました。
キャッシュの消し方は色々あるみたいですが、下記を実行したら直りました。

php artisan cache:clear  
php artisan config:clear  
php artisan route:clear  
php artisan view:clear  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

あろはの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう