PassFront
  1. PassFront
  2. База знаний
  3. Основы тестирования

Что такое TDD и в чём его смысл?

Основы тестирования

TDD (Test-Driven Development) — подход, при котором тест пишут раньше кода, а реализацию делают минимальной, чтобы он прошёл.

Цикл Red, Green, Refactor

  1. Red — пишем тест на ещё не существующее поведение, он падает.
  2. Green — пишем самый простой код, чтобы тест прошёл.
  3. Refactor — улучшаем код, не ломая тесты.

Что даёт

  • Продуманный интерфейс: сначала думаешь, как будет использоваться функция.
  • Набор тестов растёт вместе с кодом.
  • Смелый рефакторинг под защитой тестов.

Ограничения

  • Требует дисциплины и хорошо подходит для логики с чёткими правилами (валидации, расчёты).
  • Для исследовательской работы и вёрстки интерфейса часто неудобен.
  • Плохие тесты, привязанные к реализации, превращают рефакторинг в боль.
// Red
test('formats zero', () => expect(formatPrice(0)).toBe('0 ₽'));
// Green: минимальная реализация, затем следующий тест

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

TDD — короткий цикл «тест, код, рефакторинг». Он полезен там, где поведение можно сформулировать заранее, но не обязателен для всего.

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