テストファイル実行時にfactoryエラー

テストファイル実行時にfactoryエラー

Class "Database\Factories\OperatorFactory" not found

がテスト実行時に出てしまう場合。

該当のFactoryファイル自体が存在しない可能性が高い。

単純にモデルをuseしていないだけとかそういう話ではない。

プロジェクトディレクトリ/tests/Feature/InquiriesTest.php

<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

use App\Models\Inquiry;
use App\Models\Operator;//必要

use Illuminate\Foundation\Testing\DatabaseTransactions;//テストで投稿したダミーデータを無かったことにしてくれる

class InquiriesTest extends TestCase
{
    use DatabaseTransactions; //テストで投稿したダミーデータを無かったことにしてくれる

    //ダミーデータを作れる場所
    public function setUp(): void
    {
        parent::setUp();

        $inquiruy = new Inquiry; //factoryを読み込み
        $operator = new Operator;  //factoryを読み込み     

        $inquiruy->factory()->create(
            [
                'id' => 1,
                'type' => 'NASサーバー',//null不許可カラム
                'question' => 'あいうえお',//null不許可カラム
                'operator_id' => '1',//null不許可カラム
                'inquiry_id' => 'a',//null不許可カラム
                'answer' => 'かきくけこ',//null不許可カラム
            ]          
        );         

        //テスト用のダミーユーザの作成
        $operator->factory()->create(
            [
            "name" => "auth_test_user",
            "email" => "test@aaa.com",
            "password" => bcrypt('auth_test_password'),
            ]
        );         

    }

$operator = new Operator; //factoryを読み込み

とあるからにはOperatorfactory.phpがあるはずだよな?

下記のファイルを作成して解決。

\プロジェクトディレクトリ\backend\database\factories\OperatorFactory.php

<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use App\Models\Operator; 

class OperatorFactory extends Factory
{

    protected $model = Operator::class;

    public function definition()
    {
        return [
            //何も書かない
        ];
    }
}

今回は手打ちで作ったけど、

php artisan make:factory OperatorFactory

ってコマンドを実行したら1発で作成されると思う。

無制限に質問可能なプログラミングスクール!

万が一転職できない場合は、転職保障全額返金できるコースもあり!!

無制限のメンター質問対応

 

DMMウェブキャンプでプログラミングを学習しませんか?

独学より成長スピードをブーストさせましょう!

 

まずは無料相談から!

おすすめの記事