Привет, ребята!
Подскажите, пожалуйста, как вы реализуете фабрики (factories) для моделей, которые нельзя генерировать рандомно?
Образно говоря, есть модель "Тип события" (EventType) и оно может принимать три строго определенных значения: "СМС", "Звонок", "Письмо". При этом в тестах мне нужно возвращать через фабрику данные объекты.
Я поступил следующим образом: перед каждым тестом вызываю проверку наличия связанных сущностей для модели "Событие":
(EventType::all()->count() <= 0)
и если типов в БД еще нет, то вызываю сидинг:
\Artisan::call('db:seed', array('--class'=>'EventTypeTableSeeder'));
Все работает. Но выглядит как то некрасиво. + тест генерирует больше побочных эффектов, чем хотелось бы. Подозреваю, что Laravel может поддерживать более красивый подход.
Подскажите, пожалуйста, как вы поступаете, когда в тестах нужно вернуть экземляры моделей, для которых невозможно написать фабрики, генерирующие случайные данные?