Поскольку я разрабатываю пакет, поэтому я помещаю свои фабрики в произвольный путь, например:
-- app
-- packages
-----mockizart
-------blog
---------database
--------------factories
----------------- PageModelFactory.php
---------src
, вот так я загружаю фабрику в своем сервис-провайдере (я уже проверяю, что путь правильный, нажавэто на phpstorm):
function boot()
{
Factory::construct($this->app->make(\Faker\Generator::class), __DIR__."/../database/factories");
}
это моя фабрика моделей страниц (я уже убедился, что этот файл действительно загружен):
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use Mockizart\Blog\Dodols\PageModel;
use Faker\Generator as Faker;
$factory->define(PageModel::class, function (Faker $faker) {
return [
'name' => "retretre",
'slug' => "retretret",
'type' => 0,
'category' => 0,
'tags' => "",
'content' => "",
];
});
и это мой тестовый скрипт:
use Mockizart\Blog\Dodols\PageModel;
.....
.....
/** @test */
public function edit_page()
{
dd(PageModel::find(1)); <-- this return was NULL so I think my class and namespace does exist.
factory(PageModel::class)->make(); <-- this cause error "unable to locate factory......"
$response = $this->get('/blog/page/edit/15');
$response->assertStatus(200);
}