Часть I. На примере денег.
Пример разработки типичного
приклад ного код а с использованием TDD. Этот пример позаимствован
мною у Уорд а Каннингэма (Ward Cunningham) много лет назад , и с тех
пор я неод нократно использовал его д ля д емонстрации TDD. В нем
рассматривается
мультивалютная
арифметика:
выполнение
математических операций над д енежными величинами, выраженными в
различных валютах. Этот пример научит вас писать тесты д о
тестируемого ими код а и органически развивать проект.
Часть II. На примере xUnit.
Пример тестирования более сложной
логики, использующей механизм рефлексии и исключения. В примере
рассматривается
разработка
инфраструктуры
автоматического
тестирования. Этот пример познакомит вас также с архитектурой xUnit,
которая лежит в о снове множества инструментов тестирования. Во
втором примере вы научитесь д вигаться вперед еще меньшими
шажками, а также разрабатывать систему с использованием механизмов
самой этой системы.
Часть III. Шаблоны разработки через тестирование.
Зд есь
рассматриваются шаблоны, которые помогут найти ответы на
множество вопро сов, в частно сти: какие тесты писать и как их писать с
использованием xUnit. Кроме того, зд есь вы найд ете описание
некоторых избранных шаблонов проектирования и рефакторинга,
использовавшихся при созд ании примеров д ля д анной книги.
Я написал примеры так, буд то мы с вами принимаем участие в
сеансе
парного
программирования.
Если
перед
прогулкой
вы
пред почитаете
прежд е
по смотреть
на
карту,
можете
сначала
ознакомиться с шаблонами в третьей части книги, а затем рассматривать
примеры как их иллюстрацию. Если вы пред почитаете сначала погулять,
а потом по смотреть на карте, гд е побывали, тогд а сначала прочитайте
первые д ве части с примерами и обращайтесь к третьей части за
справками по мере необход имо сти. Некоторые из рецензентов д анной
книги, отмечали, что примеры усваиваются лучше, если во время чтения
запустить сред у разработки, набирать код и запускать тесты.
Касательно примеров хочу отметить след ующее. Оба примера,
мультивалютные вычисления и инфраструктура тестирования, могут
показаться чрезвычайно про стыми. Существуют более сложные,
д ефектные и урод ливые решения этих же самых зад ач (мне лично
неод нократно приход ило сь сталкиваться с под обными решениями).
Чтобы сд елать книгу более похожей на реально сть, я мог бы
прод емонстрировать од но из таких решений. Од нако моя и, я над еюсь,
ваша цель – написать чистый код , который работает. Прежд е чем пенять
на излишнюю про стоту примеров, на несколько секунд пред ставьте себе
мир программирования, в котором весь код выгляд ит также чисто и
понятно, в котором нет слишком сложных решений, только проблемы,
которые кажутся слишком сложными лишь с первого взгляд а. Сложные
проблемы нужд аются в тщательном обд умывании. TDD поможет
д обиться этого.
Do'stlaringiz bilan baham: |