Laravel

【Laravel】ファクトリを作ってテスト用のデータを定義しよう!

あきぞらです。

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();

 

-Laravel

Copyright© あきぞらてっく , 2024 All Rights Reserved Powered by AFFINGER5.