PHPUnit测试找不到工厂

时间:2019-03-05 10:12:45

标签: laravel phpunit phpstorm

我有一个使用JobFactoryClientFactory的单元测试。

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class JobTest extends TestCase
{
    /** @test */
    function can_display_job_details()
    {
        $job = create('App\Job', [
            'job-number' => 9999,
            'site' => 'Homeville',
            'client_id' => function(){
                return create('App\Client', [
                    'name' => 'ACME'
                ])->id;
            },

        ]);

        $details = $job->job_details;

        $this->assertEquals('EPS-9999-Homeville-RES', $details);

    }
}

运行测试时出现此错误

InvalidArgumentException : Unable to locate factory with name [default] [App\Job].

我在功能测试中使用了出厂的App \ Job(JobFactory),没有任何问题。 我使用PhpStorm内置的PHPUnit测试功能。

我运行创建并通过一个小测试助手

<?php

function create($class, $attributes = [], $times = null)
{
    return factory($class, $times)->create($attributes);
}

function make($class, $attributes = [], $times = null)
{
    return factory($class, $times)->make($attributes);
}

不知道我在做什么错,但我似乎无法深入了解它。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

您正在扩展错误的TestCase类。

更改:

use PHPUnit\Framework\TestCase;

收件人:

use Tests\TestCase;


Here,您可以找到一个示例。