У меня есть несколько фабрик, генерирующих модели с использованием faker, как рекомендовано в документации:
$factory->define(App\Member::class, function (Faker $faker) {
return [
'name' => $faker->name()
];
});
Я хотел бы использовать эти фабрики в тестах, чтобы перевести базу данных в известное состояние. Faker (по своей природе) создает случайные данные, когда я вызываю factory(\App\Member::class, 10)
, что приводит к ошибке типа $this->assertEquals('Eve', Member::find(5)->name)
при будущих запусках.
Замечу, что у Faker есть seed
метод, позволяющий генерировать детерминированные данные:
$faker = Faker\Factory::create();
$faker->seed(1234);
Однако с интерфейсом factory(\App\Member::class, 10)
, похоже, нет способа установить начальное значение экземпляра Faker, используемого на заводе.
Есть ли способ установить начальное число Faker из тестового примера?
Или если это не удается, в лучших практиках для установки состояния базы данных в тесте (я хотел бы использовать фабрики, но, возможно, это не лучший подход)?