LaravelのフォームリクエストのprepareForValidationでは
バリデーションを実行する前にリクエストデータを加工することができます。
リクエストデータを小文字に統一することや
[name=month value=10]、[name=day value=2]の2つリクエストデータを
[name=date value=102]という1つのリクエストデータにmergeすることができます。
ですが、prepareForValidationでmergeして新たなリクエストデータを作るとテストがしにくなってしまうのです。
基本は、Laravelのフォームリクエストをテストするとき、
Validatorファサードでバリデーションインスタンス生成して
passesメソッドに想定していデータを受け渡して確認するのですが、これが使えなくなるのです。
こういった場合のテスト方法として、以下の3つが考えられます。
それぞれについて試した結果について話します。
本セッションでは主にLaravelのフォームリクエストとテストについて話します。