Лучший вариант для ретроспективного применения TDD в кодовой базе C #

У меня есть существующий фреймворк, состоящий из 5 библиотек C #, фреймворк хорошо используется с 2006 года и является основной базой кода для большинства моих проектов. Моя компания хочет развернуть TDD из соображений качества программного обеспечения; проработав множество руководств и прочитав теорию, я понимаю преимущества TDD.

Время не безгранично. Мне нужно разработать планы для прагматического подхода к этому. Из того, что я уже знаю, варианты, которые я вижу, следующие:

A) Один тестовый проект может использоваться для перекрытия объектов из всех 5 компонентов библиотеки. Ряд высокоуровневых тестов может стать отправной точкой для создания очень большой библиотеки программного обеспечения.

B) Тестовый проект для каждого из 5 компонентов библиотеки. Проекты будут тестировать функции на самом низком уровне отдельно от других компонентов библиотеки.

C) Поскольку код считается работающим, добавляйте модульные тесты только к исправлениям ошибок или новым функциям. Напишите тест, который не работает по логике, в которой есть ошибка, с шагами по воспроизведению ошибки. Затем повторно факторизуйте код, пока тесты не пройдут.Теперь вы можете быть уверены, что ошибка исправлена, и что она не будет представлена ​​позже в цикле

Какой бы вариант ни был выбран, «Mocking» может потребоваться для замены внешних зависимостей, таких как:

  • База данных
  • Веб-служба
  • Файлы конфигурации

Если у кого-нибудь есть дополнительные данные, это будет очень полезно. Я планирую использовать встроенный MSTest от Microsoft в Visual Studio 2010.

5
задан Lightness Races with Monica 27 October 2011 в 13:58
поделиться