intermediate
Test data builders и fixtures
Используйте builders, factories и fixtures, чтобы выразить relevant data и избегать global mutable setup, связывающего unrelated tests.
Билдеры и factories выражают только поля, важные для теста — `UserBuilder().withRole('admin').build()` — без объектов на 50 строк. Фикстуры дают общий baseline; предпочитайте function-scoped setup глобальному beforeAll, связывающему несвязанные тесты.
Factories по умолчанию валидны, с явными override; randomness — явная и с seed.
На интервью: как builder сократил дублирование, не скрыв проверяемое поведение.
Типовые ошибки: mega-fixture, которую все мутируют; builder с скрытым insert в БД; литералы, расходящиеся со схемой.
Компромисс — читаемость против косвенности: builders помогают, пока не нужно читать три файла для одного теста.
Чеклист:
- Валидные defaults; override только отличия.
- Фикстуры в scope describe или теста.
- Формы factory согласованы с API/schema types.