あきぞらです。
Laravelでテスト用のデータを定義するとき、
ファクトリというテスト用データを用意しておける機能があります。
今回はその作成方法について紹介していきます!
php artisanコマンドで作成
artisanコマンドで作成することが可能です。
以下は、PostFactory
というファクトリを作成するコマンドです。
$ php artisan make:factory PostFactory
ファクトリによってつくられるモデルが「Post
」であれば、
オプションで記載しておくと便利です。
$ php artisan make:factory PostFactory --model=Post
コマンドを実行すると、database/factories
ディレクトリにファイルが作成されます。
ファクトリを記載する
ファクトリの中身を定義していきます。
returnで返すものを、定義するデータにします。
<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Model; use Faker\Generator as Faker; $factory->define(\App\model\Post::class, function (Faker $faker) { return [ // 'id' => uniqid(), 'post_id' => '123abc987', 'company_id' => 1, 'post_name' => 'testAkizora', ]; }, 'test_post_mock_data');
以下のようにテストのソースから呼び出すことによって、
疑似的なモデルのインスタンスを作成することができます。
$post = factory(\App\model\Post::class, 'test_post_mock_data')->make();