Первое, что я хотел бы сделать, это загрузить копию TestDriven.Net для использования в качестве тестового бегуна. Это добавит контекстное меню, которое позволит вам запускать отдельные тесты, щелкнув правой кнопкой мыши в методе тестирования и выбрав Run Test (s). Это также работает для всех тестов в классе (щелчок правой кнопкой мыши в классе, но вне метода), пространства имен (щелчок правой кнопкой мыши по проекту или в пространстве имен вне класса) или для всего решения (щелчок правой кнопкой мыши по решению). Также добавлена возможность запуска тестов с покрытием (встроенным или nCover) или отладчиком из того же контекстного меню.
Что касается настройки тестов, обычно я придерживаюсь одного тестового проекта на проект и одного тестового класса на тестируемый класс. Иногда я создаю тестовые классы для аспектов, которые встречаются во многих классах, но не обычно. Типичный способ их создания - это сначала создать каркас класса - без свойств, без конструктора, но с помощью первого метода, который я хочу протестировать. Этот метод просто генерирует исключение NotImplementedException.
После того, как скелет класса создан, я использую правой кнопкой мыши Создать модульные тесты в тестируемом методе. Это открывает диалог, который позволяет вам создать новый тестовый проект или выбрать существующий. Я создаю и называю соответствующим образом новый тестовый проект, и мастер создает классы. Как только это будет сделано, вы можете также захотеть создать частные функции доступа для класса в тестовом проекте. Иногда их нужно обновить (воссоздать), если ваш класс существенно меняется.
Теперь у вас есть тестовый проект и ваш первый тест. Начните с изменения теста, чтобы определить желаемое поведение метода. Напишите достаточно кода, чтобы (просто) пройти тест. продолжайте писать тесты / писать коды, задавая больше поведения для метода, пока не будет определено все поведение для метода. Затем переходите к следующему методу или классу в зависимости от ситуации, пока у вас не будет достаточно кода для завершения функции, над которой вы работаете.
Вы можете добавлять дополнительные и различные типы тестов по мере необходимости. Вы также можете настроить контроль исходного кода так, чтобы некоторые или все тесты проходили до регистрации.