Тест PHPUnit не может найти фабрику - PullRequest
1 голос
/ 05 марта 2019

У меня есть модульный тест, который использует JobFactory и ClientFactory.

<?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) в моем тесте функций без проблем.Я использую встроенную функцию тестирования PHPUnit в PhpStorm.

Я запускаю create и make с помощью небольшого помощника по тестированию

<?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 Ответ

4 голосов
/ 05 марта 2019

Вы расширяете неправильный TestCase класс.

Изменение:

use PHPUnit\Framework\TestCase;

до:

use Tests\TestCase;


Здесь вы можете найти пример.

...