Tag: ユニットテスト

Larave 6.xへ更新

またまたLaravelの更新の時期がやってきました。と言っても、またしても遅れての私のキャッチアップです。Laravel 6.xのバージョンは、Laravel 5.5と同様にLTSの長期サポートまでなので、バグの修正は、9/3/2021まで、セキュリティの修正は、9/3/2022までとあるので、できるならアップグレードしたいです。また、6.xのバージョンは、新サービスのサーバーレス対応のVaporでは必須ゆえに、Laravelを実行するサーバーのスケールアップに興味があるなら、なおさら頑張ってアップグレードする必要あります。

バリデーションの実例:DBの情報を引数とする条件

今回は、引数にDBの情報を指定するバリデーションルールです。今回はデータベースを伴うテストなので、use RefreshDatabase;のトレイトや、factory()->create()が使用されています。 exists unique 後者の方は、会員登録では必須のバリデーションです。会員編集の方でも自分のレコードを外す引数を指定すれば使用可能です。しかし、Laravel 5.5からのRuleの登場で、よりわかりやすい形でも指定できます。これらは皆、今回のテストに含まれています。

バリデーションの実例:他の項目の値を引数とする条件

今回は、引数にフォームの他の項目名を指定するバリデーションルールです。 confirmed different in_array same 個人的には、最初のconfirmed以外は使用したことないですね。in_arrayでは引数として指定する項目が配列であることを示すために、field2.*のように指定する必要あることに注意してください。 さて、他の項目の値を引数としては使わないのですが、入力値が配列のときに、それらの値に重複がないというチェックもここに掲載します。他に入れるところがないというのですが、本当は。配列という投稿を作成してもよいかもしれませんね。 distinct

バリデーションの実例:定数値を引数とする条件

入力値のデータタイプの判定のバリデーションから、今度は条件で判定するバリデーションに移っていきます。条件で判定するバリデーションには、その条件で使用される引数の指定が必要となります。引数には、 文字列や数字の定数値(例:min, maxなど) 同じフォームの他の項目名(例:same、differentなど) DBの情報(例:exists、unique) が指定されます。 今回は、最初の引数タイプ、定数値を引数とする条件の以下のバリデーションのテストを掲載します。 digits digits_between size between min max in not_in regex また、前回紹介した日付のバリデーションの以下も定数値を引数とする条件に含まれますね。 date_format, date_equals, after,…