Написание некоторых модульных тестов, и я хочу создать объект до того, как тесты в классе будут выполнены.Поэтому я настроил метод setUpBeforeClass()
:
<?php
namespace Tests\Unit;
use Tests\TestCase;
use App\Location;
class UserTests extends TestCase {
const FAKEID = 9999999;
public static function setUpBeforeClass() : void {
parent::setUpBeforeClass();
factory(Location::class)->make(["id" => self::FAKEID])->save();
}
}
Но когда я пытаюсь запустить это, я получаю эту ошибку:
InvalidArgumentException: Unable to locate factory with name [default] [App\Location].
Но фабричный класс настроен правильно.На самом деле, если я перенесу эту строку на одну из моих тестовых функций, она будет работать отлично.
public function testCreateUser() {
factory(Location::class)->make(["id" => self::FAKEID])->save();
// do other stuff...
}
Единственное, что отличается от setUpBeforeClass()
, - это статический метод,но я не знаю, почему это помешало бы работе фабричного класса.