У меня есть существующее приложение VS 2005 Std .NET Compact Framework, для которого я хочу провести несколько основных рефакторингов. В настоящее время нет модульного тестирования, но я хочу добавить это, прежде чем связываться с кодом. У меня нет практического опыта в модульном тестировании, хотя я знаю теорию (просто никогда не удосужился ее реализовать; я знаю: позор мне :-))
Вот несколько вопросов, над которыми я сейчас размышляю:
a) Как новичку, я должен использовать NUnit или NUnitLite (который, как утверждается, проще в использовании)?
б) Должен ли я стремиться запускать тесты на мобильном устройстве или на рабочем столе (за исключением, конечно, кода для конкретного устройства)? В настоящее время рабочий стол выглядит более привлекательным, особенно для включения тестов в автоматизированные сборки ...
в) Как класс, который я хочу протестировать, обычно включается в тестовый проект? Мое приложение представляет собой файл .EXE, то есть я не могу просто ссылаться на него как сборку .DLL из тестового проекта (или я могу? Никогда не пробовал это ...). Я проверил различные учебные пособия по NUnit, но либо не нашел упоминаний об этом, либо один учебник предложил скопировать и вставить класс, который я хочу протестировать, в тестовый проект (yuk!). Должен ли я ссылаться на исходный файл исходного кода в моем тестовом проекте? А как насчет частных методов или зависимостей от других классов?
d) Должен ли я начать изменять свой исходный код, чтобы обеспечить лучшую тестируемость, например сделать частные методы общедоступными, развязать и т. д.? Это немного похоже на рефакторинг перед тестированием, что не очень хорошо для меня ... Или лучше вообще не трогать исходный код в начале, даже если это означает меньшее покрытие кода и т. Д.? 1009 *
e) Стоит ли искать другие инструменты или дополнения, которые использует большинство людей?
Заранее благодарен за любые ответы (я также ценю ответы, если они относятся только к одному или нескольким из вышеперечисленных пунктов).