У меня есть существующий фреймворк, состоящий из 5 библиотек C #, фреймворк хорошо используется с 2006 года и является основной базой кода для большинства моих проектов. Моя компания хочет развернуть TDD из соображений качества программного обеспечения; проработав множество руководств и прочитав теорию, я понимаю преимущества TDD.
Время не безгранично. Мне нужно разработать планы для прагматического подхода к этому. Из того, что я уже знаю, варианты, которые я вижу, следующие:
A) Один тестовый проект может использоваться для перекрытия объектов из всех 5 компонентов библиотеки. Ряд высокоуровневых тестов может стать отправной точкой для создания очень большой библиотеки программного обеспечения.
B) Тестовый проект для каждого из 5 компонентов библиотеки. Проекты будут тестировать функции на самом низком уровне отдельно от других компонентов библиотеки.
C) Поскольку код считается работающим, добавляйте модульные тесты только к исправлениям ошибок или новым функциям. Напишите тест, который не работает по логике, в которой есть ошибка, с шагами по воспроизведению ошибки. Затем повторно факторизуйте код, пока тесты не пройдут.Теперь вы можете быть уверены, что ошибка исправлена, и что она не будет представлена позже в цикле
Какой бы вариант ни был выбран, «Mocking» может потребоваться для замены внешних зависимостей, таких как:
Если у кого-нибудь есть дополнительные данные, это будет очень полезно. Я планирую использовать встроенный MSTest от Microsoft в Visual Studio 2010.