Базовый код не должен содержать какой-либо тяжелой логики.Код должен знать о инициализации элементов управления пользовательским интерфейсом, обновлять пользовательский интерфейс путем обработки событий и т. Д.
Я бы предложил выделить функциональные блоки в отдельные классы, а затем просто протестировать эти классы самостоятельно.В вашем случае я вижу по крайней мере два автономных и абстрагированных функциональных блока:
- Уровень доступа к данным
- HTML Writer
Если вы ищете для тестирования пользовательского интерфейсаКроме того, вы можете использовать специальные платформы, такие как WatiN :
Вдохновленный Watir, разработка WatiN, начатая в декабре 2005 года, позволила сделать подобный вид тестирования веб-приложений для языков .Net.С тех пор WatiN превратился в простой в использовании, многофункциональный и стабильный фреймворк.WatiN разработан на C # и призван предоставить вам простой способ автоматизации ваших тестов с помощью Internet Explorer и FireFox с использованием .Net
РЕДАКТИРОВАТЬ: Ответ на комментарии
- Как правило, помощники и службы доступа к данным расположены в отдельной сборке и абстрагированы интерфейсами, поэтому их легко заменить и протестировать
- Мне нравится подход, когда у каждого проекта есть свой отдельный тестовый проект, в основном, если вы будетепридерживаться отдельного проекта
DataAccessLayer
- все связанные тесты было бы здорово разместить в отдельном DataAccessLayer.Tests
проекте