Ответ 1
Вот несколько примеров:
- NUnit
- CodeCampServer Любой из
- Инструменты Rhino от Айенде (например, Rhino Mocks)
- ASP.NET MVC
- Cuyahoga (система CMS)
- Свободный NHibernate
Каков качественный реальный пример TDD в действии? Какие мелкие и средние проекты с открытым исходным кодом в .net находятся там, которые показывают лучшую практику в TDD и могут работать как ссылка для правильного использования TDD?
Я смотрю больше для примера проекта живого дыхания, который служит хорошим примером TDD. Что-то, что будет дополнять книги и ссылки, которые объясняют и демонстрируют процесс в изоляции.
Что-то, что было бы полезно для желаемого разработчика, который хочет выровняться от начинающего/промежуточного практикующего TDD...
Вот несколько примеров:
Если вы изучаете это для личного использования TDD, я не думаю, что просмотр других проектов действительно поможет вам. Вместо этого вы должны погрузиться и просто сделать это, и учиться, когда идете.
Для начала ознакомьтесь с в этой статье о тестировании и о том, как начать работу, и эта книга о TDD Кентом Бек (очень простая, понятная и проницательная).
Это может быть или не быть тем, что вам нужно, но в MS Enterprise Library есть полный набор модульных тестов (NUnit) как часть дистрибутива исходного кода, я бы рассматривал это как довольно реальный мир.
Кев
TDD - это процесс, который в основном происходит между фиксациями в репозитории.
При просмотре проектов с открытым исходным кодом вы увидите только моментальные снимки кода, которые выполняются при совершении разработчика.
Не должно быть никакой практической разницы между коммитами, сделанными разработчиком, которые делают хороший дизайн и реализуют множество модульных тестов и хороший разработчик, который практикует TDD. Разница заключается в том, что TDD-процесс оказывает давление на разработчика, чтобы сделать чистый дизайн и реализовать множество модульных тестов.
Глядя на тестовый проект с открытым исходным кодом, вы сможете увидеть результат TDD-процесса, а не как самостоятельно пройти тест-драйв.
Чтобы действительно узнать это, вам действительно нужно смотреть, как кто-то делает TDD. Книга может помочь, но трудно показать этот процесс в книге. Намного лучше увидеть это в режиме реального времени. Наилучшим способом было бы совместное программирование с кем-то, кто управляется тестированием. Следующей лучшей будет демонстрация на конференции или собрании - возможно, у вас есть локальная группа пользователей?
В противном случае есть некоторые онлайн-видео-демонстрации. Вот два:
Я сам не прошел через все веб-трансляции, поэтому не могу сказать, насколько хорошо Rob Conery реализовал TDD, но его серия MVC Storefront предполагается использовать TDD.
У Рона Джеффриса много хороших статей на xprogramming.com. Если вы делаете С#, найдите "Приключения в С#". Или купите книгу.
Его стиль письма охватывает большинство аспектов TDD, даже неправильные повороты, которые нам суждено взять. На протяжении многих лет я много узнал о своих статьях, даже на более экзотических языках.
Я бы повторил комментарий Rasmus о том, что более полезно смотреть, как кто-то делает TDD. Два ресурса, которые я нашел действительно полезными:
Джеймс Шор видеоролик YouTube, где он создает небольшую часть программного обеспечения с нуля с помощью TDD и записывает каждый шаг обработать. На мой взгляд, это должно быть необходимо для просмотра всем, кто думает о начале работы с TDD, я только недавно наткнулся на него, и я удивлен, что у него больше нет воздействия. Там 120 15-минутных видеороликов - это много материала.
Дерек Грир в Los Techies серию сообщений, прокладывая путь к созданию базовой игры tic-tac-toe. Это тоже очень хорошо, но, очевидно, не занимает столько же глубины, как предыдущий ресурс. Я бы рекомендовал это, если у вас мало времени.
Около недели назад компания IT Conversations опубликовала очень интересную беседу, которую дал Кент Бек, посвященный TDD (но также затронул модели и экстремальное программирование). Ничего "мясистого", насколько подробные инструкции по TDD, но информативные в любом случае. Определенно стоит слушать, если вы наращиваете свои навыки TDD.