
あきぞらです。
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();