Laravel PHP プログラミング

【Laravel】factoryを使用してテストデータを作成

factoryとは

WEBアプリケーションのテストを行う際にテスト用のデータが必要になりますが、

テストデータ挿入用のSQLファイルを作成するのも時間がかかりますし、大量のデータで試験を行う場合はかなり面倒です。

テスト自体は品質を担保するものなので、時間をかけて行う価値はありますが、テストデータは簡単に作成したい。

Laravelではそういった場合に対応する「ファクトリ」というテスト用のデータを作成する機能がありますので実際に作成していきたいと思います。

記事内で使用するマイグレーションやシーダ、ファクトリーの作成・実行コマンドは以下にまとめています。

参考:【Laravel&Laravel-admin】artisanコマンドまとめ

環境

PHP 7.2.2

Laravel 5.5.44

流れ

①テストデータ日本語化の為の設定

まずは、テストデータの日本語化のための設定を行います。

config/app.phpの末尾に以下を追加します。

②マイグレーションファイル作成・記述

任意のマイグレーションファイルを作成し、内容を記述します。

③ファクトリー作成・記述

モデルも一緒に作成します

動作を見るために作ったテーブルなのでかなり質素です。

実際に使用するテーブルは様々なカラムが存在すると思います。

以下のサイトでチートシートを作成してくれています。とても参考になりました。

参考:[Laravel5.1]Fakerチートシート

⑤シーダーに一行追加
標準で作成されているDatabaseSeeder.phpのrunメソッド内に以下の記述を追加します。
第2引数の数字が作成されるレコード数となります。

⑦マイグレーション&シーダー実行

実行前に設定のキャッシュクリアをしないと日本語化が反映されないことがあるのでお忘れなく。

正常に実行できていればテストデータが指定したレコード数で作成されているはずです。

参考

公式: Laravel 5.5 データベースのテスト

使い方:Laravel5.5でほぼ完成されたModelFactoryの使い方

 

-Laravel, PHP, プログラミング

Copyright© Life.log , 2020 All Rights Reserved Powered by AFFINGER5.