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.