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