Laravel PHP プログラミング

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

投稿日:2018年11月26日 更新日:

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, プログラミング

関連記事

【VirtualBox+Vagrant】仮想環境にgitとdocker-composeをインストール

はじめに 以前の記事、【VirtualBox+Vagrant】VirtualBox+Vagrantで仮想環境を構築するにて、 VagrantfileからCentOS7の環境を作成しました。 今後、この …

メール送信におけるレピュテーションとは ~IP・ドメインを育てる!!~

Webシステムにおいて、何らかの契機でメール送信を行う機能は必要とされるケースが多くあります。 僕自身、関わった案件の中でメール送信機能を実装した経験がいくつかあります。 メール送信機能の実装に関して …

Visual Studio 2017のインストール方法

以前のバージョンのアンインストール インストールの前に以前のバージョンが既にインストールされている場合に、以前のバージョンのアンインストール作業を簡単に実行することができます。 以下のページからTot …

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

Laravelにおいての「artisan」コマンドでは簡単にコントローラやモデルの作成等が行えます。 使用のたびに公式から探すのも面倒なのでまとめておきたいと思います。 いざ調べてみると結構面白く、知 …

【SendGrid】SendGridでトランザクションテンプレート作成

はじめに 前回SendGridに登録を行いAPIKeyの作成を行いました。 関連記事:【SendGrid】SendGridについての概要 この記事ではSenGridのトランザクションメールのテンプレー …