Почему нам нравятся минимальные сидеры для тестов

Источник: «Why we like minimal seeders for tests»
Если все сделать правильно, ваши тесты будет намного легче поддерживать

Во вчерашнем совете мы говорили о том, как использовать свойство $seed для более быстрого запуска тестов, но при этом упустили из виду, что именно нужно поместить в сидер.

Наш подход заключается в том, чтобы сидер по умолчанию был настолько минимальным, насколько это возможно. Он должен содержать только те данные, которые абсолютно необходимы для работы приложения.

Что мы под этим подразумеваем? Приложению нужны пользователи, верно? Нет, мы не помещаем пользователей в наши сидеры. Мы говорим о "системных" данных, таких как список стран или почтовых индексов. Или у вас могут быть данные, специфичные для вашей области применения, которые просто должны существовать.

Подумайте об этом следующим образом: Стандартный сидер должен содержать только те данные, которые вы хотели бы запустить в продакшн при первом запуске приложения. Так что фейковые пользователи, компании или транзакции — все это не должно там находиться.

Сам тест должен отвечать за настройку записей в базе данных, необходимых для конкретного теста. Это позволяет легко читать каждый тест в отдельности и предотвращает множество ошибок в тестах, возникающих из-за зависимости от данных, которые должны быть настроены определённым образом за пределами теста.

Дополнительные материалы

Предыдущая Статья

Новое в Symfony 6.4: Профилировщик Workflow

Следующая Статья

Как использовать файловую систему в Node.js