概要
- laravelにてFactoryを用いてテストデータを作成する方法の準備をまとめる。
前提
- マイグレーションファイルの記載及びマイグレート、モデルクラスの最低限の作成が完了していること。
方法
-
Factoryの準備
-
artisanコマンドを用いてファクトリークラスを作成する。
-
Factoryを下記のように記載する。
FooFactory.php<?php namespace Database\Factories\Content; use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\モデルクラス; /** * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Model> */ class ContentFactory extends Factory { protected $model = モデルクラス::class; /** * Define the model's default state. * * @return array */ public function definition() { return [ 'カラム名' => 投入するデータ, ]; } }
-
definition()関数の例を下記に記載する。(contentカラムにStrファサードを用いて255文字のランダムな文字列を格納する例を記載)格納するデータはもちろん当該カラムの制約に一致しているものである必要がある。
FooFactory.phpuse Illuminate\Support\Str; public function definition() { return [ 'content' => Str::random(255), ]; }
-
-
モデルクラスの記載
-
当該のモデルクラスを開き下記の関数を記載する。(静的関数なので注意)準備はこれで完了となる。
Foo.phppublic static function newFactory() { return 先に定義したFacotryクラス::new(); }
-
次はlaravel Factoryを用いてテストデータを作成する(使用編)で使い方を説明する。
-