Что такое TDD?

👨‍💻 Frontend Developer 🟠 Может встретиться 🎚️ Средний
#Testing #TDD #JavaScript

Краткий ответ

  • TDD (Test‑Driven Development) — подход, где сначала пишется тест, потом минимальный код для прохождения теста, затем рефакторинг.
  • Цикл: Red → Green → Refactor.
  • Плюсы: надёжный дизайн, меньше регрессий, уверенность в изменениях.

Полный ответ

Что такое TDD

TDD — итеративный процесс разработки: вы формулируете поведение через тест, заставляете тест упасть (Red), пишете минимальный код для прохода (Green) и улучшаете решение без изменения поведения (Refactor).

Цикл TDD

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

Мини‑пример:

// Red: тест падает — функции нет или поведение не реализовано
expect(sum(1, 2)).toBe(3);
 
// Green: пишем минимальную реализацию
function sum(a, b) { return a + b; }

Преимущества

  • Дизайн через поведение: API формируется тестами.
  • Быстрая обратная связь и защита от регрессий.
  • Уверенность при рефакторинге и добавлении фич.

Частые ошибки

  • Писать слишком общие тесты — теряется фокус.
  • Перескакивать рефакторинг — растёт технический долг.
  • Слишком большие шаги — теряется «красный/зелёный» ритм.

Практические советы

  • Малые шаги и простой код на этапе Green.
  • Рефакторьте сразу, опираясь на прохождение тестов.
  • Держите тесты быстрыми и детерминированными.