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

関連記事

no image

【WordPress】WordPressをDockerToolboxを使用して構築する方法

どうも、こんばんは。 突然ですが、僕は開発にもっぱらxamppを使ってきました。 自宅での開発もLaravelとWordpressのみなので、xamppでも十分なのですが、会社の開発ではxamppでは …

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

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

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

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

【Laravel-admin】Laravel-adminで新規テーブルを作成しCRUD画面を追加する方法

前回【Laravel-admin】PHPのライブラリ「Laravel-admin」のインストール方法でPHPのフレームワーク「Laravel」と管理画面用のパッケージである「Laravel-admin …

【VirtualBox】スナップショットの作成・適用・削除

業務では主にHyper-Vを使用しているのですが、「チェックポイント」という機能がとても便利で重宝しています。 機能の概要は、稼働している仮想環境を「チェックポイント」として保存することができ、作成し …