フォームリクエストバリデーション – バリデーション 7.x Laravel にあるように、バリデーションロジックを含んだカスタムリクエストクラスを作成して利用することはよくあります。
しかし、フォームリクエストをどうやってユニットテストすれば良いのかについては、 Laravel ドキュメントに記載がありません。
自分自身がさまざま調べ、現在行っているユニットテストの方法を記したいと思います。
フォームリクエストバリデーション – バリデーション 7.x Laravel にあるように、バリデーションロジックを含んだカスタムリクエストクラスを作成して利用することはよくあります。
しかし、フォームリクエストをどうやってユニットテストすれば良いのかについては、 Laravel ドキュメントに記載がありません。
自分自身がさまざま調べ、現在行っているユニットテストの方法を記したいと思います。
oki2a24/sample_dockerized_laravel6: Laravel6 を Docker 化するサンプルです。 にて Laravel を Docker コンテナ化しました。
Apache 入りの PHP コンテナで Laravel を動かしています。この Laravel で タスクスケジュール 6.x Laravel も行いたいと思いました。
cron を動かせば簡単です。
しかし、 コンテナではすでに Apache のプロセスが動いており、ここに cron を足せません。
これを、なんとかしたのが本投稿となります。
php artisan tinker
DB::connection()->getConfig();
DB::connection()->getPdo();
接続名も例えば DB::connection('foo')->getConfig(); のようにして指定可能です。
composer.json の php artisan コマンドに、 --env=laravel といったオプションが不要になる。--env=laravel オプションを付けなくとも (.env.laravel を読み込むように環境変数 APP_ENV に laravel を付けることで) php artisan コマンドを使えるようにするので、こちらの方が統一されており、望ましいと言える。"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" を修正する。例えば、 "@php -r \"file_exists('.env.laravel') || copy('.env.laravel.example', '.env.laravel');\"" とする。@php artisan package:discover --ansi を修正する。例えば、 @php artisan package:discover --ansi --env=laravel とする。@php artisan key:generate --ansi を修正する。例えば、 @php artisan key:generate --ansi --env=laravel とする。APP_ENV=laravel とする。
ENV APP_ENV laravel などと書く。