Просто набор kata для души и развлечений с применением подхода TDD.
- Банкомат
- Боулинг
- Лампа
- Весы
- Деньги
- DSL
- Очередь ожидания
- Печать отчета
- Транзакция
- Большие числа
- Саги
- Менеджер аудита
- Суммы значений узлов дерева
- Поиск знаменитости на вечеринке
- Цветная карта Австралии
- Перцептрон
- Метод помидора
Алгоритм
- Добавить небольшой тест
- Запустить тест и убедиться, что он терпит неудачу
- Внести небольшое изменение в код
- Снова запустить тесты и убедиться, что они прошли успешно
- Устранить дублирование при помощи рефакторинга
Цикл
Красны - Зеленый - Рефакторинг
Навыки
- подходы, которые заставят тест работать быстро: заглушка, триангуляция и очевидная реализация
- формирование дизайна через устранение дублирования между функциональным кодом и тестами
- способность контролировать ширину шага - когда неуверенность возрастает, надо переходить на маленькие шажки, когда все становиться очевидным - увеличивать шаг
Ограничения
- производительность
- изоляция - тесты не должны влиять друг на друга
Шаблоны разработки через тестирование:
- Тест
- Изолированный тест
- Список тестов
- Сначала тест
- Сначала оператор assert
- Тестовые данные
- Понятные данные
Шаблоны красной полосы:
- Тест одного шага
- Начальный тест
- Объясняющий тест
- Тест для изучения
- Еще один тест
- Регрессионный тест
- Перерыв
- Начать сначала
- Дешевый стол, хорошие кресла
Шаблоны тестирования:
- Дочерний тест - чтобы заставить работать большой тест, напишите сначала маленький тест, представляющий часть большого
- Mock object
- Самошунтирование - чтобы убедиться, что один объект правильно взаимодействует с другим, заставьте контролируемый объект взаимодействовать с тестом
- Строка-журнал
- Тестирование обработок ошибок
- Оставляйте сломанный тест, если вы работаете один и вам будет легко вспомнить на каком месте вы прервались в прошлый раз
- Часто выпускаемый код
Шаблоны зеленой полосы:
- Подделка - самая первая реализация функционала нужна, чтобы проверить сам тест, поэтому код может быть настолько простым, чтобы проходил тест
- Триангуляция
- Очевидная реализация
- От одного ко многим - для реализации работы с коллекцией, реализуйте сначала работу с одним элементом
- Экстремальное программирование, Кент Бек