Идеальный подход к TDD цикличен и состоит из трех основных шагов:
-
Красный (Red):
- Написать тест, который проверяет функциональность, которую ещё нет (или которая не работает).
- Запустить все тесты. Этот новый тест должен упасть (fail), что и символизирует "красное" состояние. Это подтверждает, что тест действительно проверяет отсутствие требуемой функциональности.
-
Зеленый (Green):
- Написать минимально необходимый код для прохождения этого нового теста.
- Запустить все тесты снова. Все тесты, включая новый, должны пройти (pass), что символизирует "зеленое" состояние. Цель на этом этапе – добиться прохождения тестов, а не написания идеального кода.
-
Рефакторинг (Refactor):
- Улучшить код, который был написан на предыдущем шаге. Это включает в себя очистку, повышение читаемости, устранение дублирования, улучшение структуры – всё, что не нарушает проходимость тестов.
- Запустить все тесты ещё раз, чтобы убедиться, что изменения не сломали существующую функциональность. Тесты должны оставаться "зелеными".
После этого цикл повторяется для следующего фрагмента функциональности.
Ключевые аспекты идеального подхода:
- Маленькие шаги: Добавление небольших, инкрементальных изменений как в тестах, так и в коде.
- Быстрая обратная связь: Частый запуск тестов для оперативного получения информации о состоянии