Резюме
Пишите тесты сначала, наблюдайте, как они не проходят, затем реализуйте минимальный код, который пройдет.
-
Следование циклу red-green-refactor: написать падающий тест, проверить, что он падает корректно, реализовать минимальный код для прохождения, затем рефакторить, сохраняя тесты зелеными
-
Требуется удалить любой продакшн-код, написанный до появления тестов; без исключений для "reference" или "adaptation"
-
Подчеркивает, что наблюдение за тем, как тесты провалились, является доказательством того, что они действительно тестируют нужную вещь; тесты, которые проходят мгновенно, ничего не доказывают
-
Охватывает распространённые рационализации (тестирование после, ручная верификация, затраты, понесённые в прошлом) с конкретными возражениями и контрольным списком для проверки соблюдения TDD
Разработка через тестирование (TDD)
Обзор
Сначала напишите тест. Посмотрите, как он провалится. Напишите минимальный код, чтобы пройти.
Основной принцип: Если вы не наблюдали за тем, как тест провалился, вы не знаете, тестирует ли он правильную вещь.
Нарушение буквы правил нарушает дух правил.
Когда использовать
Всегда:
-
Новые функции
-
Исправления ошибок
-
Рефакторинг
-
Изменения поведения