PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Когда использовать unit-тесты?

Продвинутые темы

Unit-тесты используют для проверки отдельных единиц кода (функций, компонентов) в изоляции — прежде всего для чистой логики, утилит и переиспользуемых компонентов.

Когда писать unit-тесты

  • Чистые функции и утилиты — форматирование, валидация, вычисления, редьюсеры. Идеальны: вход/выход, без зависимостей.
  • Бизнес-логика — критичные алгоритмы, обработка данных.
  • Переиспользуемые компоненты — базовый рендер, поведение по props.
  • Хуки — кастомная логика.
  • Крайние случаи и баги — тест, воспроизводящий баг, защищает от регрессий.
expect(formatPrice(1000)).toBe('1 000 ₽');
expect(reducer(state, action)).toEqual(nextState);

Когда unit-тестов недостаточно

  • Взаимодействие модулей → интеграционные тесты.
  • Полный пользовательский сценарий → E2E (Playwright/Cypress).
  • Сложная логика с внешними зависимостями — unit с моками менее ценен, чем интеграционный.

Пирамида тестирования

Много быстрых unit → меньше интеграционных → мало медленных E2E. Unit дают быструю обратную связь и точную локализацию ошибки.

Коротко для собеседования

Unit-тесты — для изолированной проверки функций, утилит, редьюсеров, хуков и базового поведения компонентов (быстрые, точная локализация). Для взаимодействия модулей — интеграционные, для сценариев — E2E. Много unit, мало E2E (пирамида).

Другие вопросы раздела