Test Driven Development
by Дария Solovey
1. Описание
1.1. Разработка ведется короткими циклами.
1.2. Реализации функции предшествует отказной тест
1.3. Отказной тест только один.
1.4. Реализация функции должна быть максимально простой и достаточной для прохождения теста (связано с принципами KISS и YAGNI).
1.5. После прохождения тестов начинаем безжалостный рефакторинг (на этом этапе мы избавляемся от дублей, тесно связано с принципом DRY)
2. Алгоритм
2.1. Добавление теста
2.2. Запуск всех тестов: убедиться, что новые тесты не проходят
2.3. Написать код
2.4. Запуск всех тестов: убедиться, что все тесты проходят
2.5. Рефакторинг
2.6. Повторить цикл
3. Видеоматериал на тему
4. Преимущества
4.1. Программисты, пишущие больше тестов, склонны быть более продуктивными
4.2. Реже возникает необходимость использовать отладчик
4.3. Общее время, затраченное на разработку оказывается меньше
4.4. Тесты позволяют производить рефакторинг кода без риска его испортить
4.5. Тесты могут использоваться в качестве документации
5. Возникновение