FakerとFactoryを使ってより現実に近いテストデータを用意してみます。
Fakerとは
より現実に近いテストデータを簡単に作成できるライブラリ。
作成できるダミーデータは主に次の通り。
項目名 | 出力データ |
---|---|
name | 氏名 |
メールアドレス | |
safeEmail | メールアドレス |
password | パスワード |
address | 住所 |
phoneNumber | 電話番号 |
company | 企業名 |
realText | テキスト |
使い方。
// 初期化
$faker = Faker\Factory::create('ja_JP');
// データの取得
$faker->name
$faker->email
Fakerの生成するデータのロケールを変更したい場合、設定ファイルでも変更できます。
config/app.php に以下を追加します。
config/app.php
<?
return [
...
'faker_locale' => 'ja_JP',
...
];
Factoryとは
大量のデータベースレコードを作成するのに便利。
モデルクラスを作成します。app配下にHoge.phpが作成される。
$ php artisan make:model Hoge
ファクトリークラスを作成します。database/factoriesフォルダにHogeFactory.phpが作成される。
$ php artisan make:factory HogeFactory
HogeFactory.phpを編集します。
database/factories/HogeFactory.php
<?php
use Faker\Generator as Faker;
$factory->define(App\Hoge::class, function (Faker $faker) {
$now = \Carbon\Carbon::now();
return [
//
'name' => $faker->name,
'mail' => $faker->email,
'comment' => $faker->realText,
'created_at' => $now,
'updated_at' => $now,
];
});
HogesTableSeeder.phpを編集します。
database/seeds/HogesTableSeeder.php
<?php
use Illuminate\Database\Seeder;
class HogesTableSeeder extends Seeder
{
public function run ()
{
// 50レコード作成する
factory (\App\Hoge::class, 50)->create();
}
}
DatabaseSeeder.phpを編集します。
database/seeds/DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run ()
{
$this->call(HogesTableSeeder::class);
}
}
実行します。
$ php artisan db:seed
testapp_db=# select * from hoges LIMIT 1;
id | name | mail | comment | type | created_at | updated_at
----+-------------+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+---------------------+---------------------
51 | 青田 裕美子 | sayuri.yamaguchi@gmail.com | になっていたジョバンニに言いい
ましたら、自分で一ぺんにぶっきりんころにはたしました。ジョバンニのうしてますと、いつはなんのようにそう言いいなんに牛乳ぎゅうを忘わすとみをたてず、どんなほんとながらすうりをはじめました。「そう、そのマジェランプが、くるところはゆるしてそれを見ながら、もうな用ようにあてていましたがね、こんばんをのぞいて外をなおにこには明るく下に青い天の川のなから四方を見ました標札ひょ。 | C | 2019-07-11 01:50:07 | 2019-07-11 01:50:07
(1 row)
参考
- 竹澤勇貴・栗生和明・新原雅司・大村創太郎(2018)『PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5LTS対応』ソシム
- Laravel Document