Что такое лучший способ сделать модульного тестирования для ASP.NET 2.0 веб-страниц?
====================================================================================

Какие-либо предложения? Использование Visual Studio в C #.

Существуют ли какие-либо конкретные инструменты для использования или методы подойти к этому?

### Обновить:

К сожалению, я должен был быть немного более конкретными. Я использую ASP.Net 2.0 и смотрел больше для такого инструмента, как JUnit для Java. Я посмотрел на NUnit и NUnitAsp и выглядит очень многообещающим. И я даже не знаю, что Visual Studio Pro имеет набор тестирования, поэтому я буду смотреть на все эти варианты (я только начал использовать Visual Studio / Asp.net / C # этим летом).

 

Мальчик, это довольно общий вопрос. Я сделаю все возможное, но будьте готовы видеть меня пропустить на милю.

Предположения

1. При использовании ASP.NET, не обычный ASP
2. Вы действительно не хотите , чтобы проверить свои веб - страницы, но **логика** позади них. Модульное тестирование фактических страниц .aspx является довольно болезненным, но есть рамки там , чтобы сделать это. [NUnitAsp](http://nunitasp.sourceforge.net/) один.

Первое , что нужно сделать , это организовать (или план) код так , что он может быть проверен. Два наиболее популярных шаблонов проектирования для этого в то время , как представляется, MVP и MVC. Как отделить **логику** приложения от **зрения** , так что вы можете проверить логику без представления (веб - страниц) , получить в вашем пути.

Либо MVP или MVC будет эффективным. MVC имеет преимущество, рамка Microsoft [почти готова к работе](http://www.asp.net/mvc/) . 

После того, как вы выбрали рамочный шаблон , который стимулирует тестируемость, вам необходимо использовать инструмент модульного тестирования. [NUnit](http://www.nunit.org/) является хорошей отправной точкой. Visual Studio Professional имеет [набор тестирования построил его](http://msdn.microsoft.com/en-us/library/bb385902.aspx) , но NUnit + [TestDrive.NET](http://www.testdriven.net/) также работает в IDE.

Это своего рода дробовика информации. Я надеюсь , что некоторые , если она попадает. Прагматическая Книжная полка имеет [хорошую книгу , закрывающую тему](http://rads.stackoverflow.com/amzn/click/0974514020) .

 

Была скринкаста серия года назад или около того на полиморфном Podcast, что сделали очень хорошее интро прохождения игры по реализации MVP в ASP.NET. Реализован этот путь, модульные тесты падают на место гораздо более естественно.

<http://polymorphicpodcast.com/shows/mv-patterns/>

 

[NUnit](http://nunit.org/) это путь для вас. Вы можете найти некоторые ссылки здесь:

1. <http://nunitasp.sourceforge.net/tutorial/>
2. <http://www.hanselman.com/blog/NUnitUnitTestingOfASPNETPagesBaseClassesControlsAndOtherWidgetryUsingCassiniASPNETWebMatrixVisualStudioWebDeveloper.aspx>

 

Посмотрите на <http://selenium.openqa.org/> она предлагает хороший автоматизированный способ создания модульных тестов перекинув в браузер. есть хороший светлячок плагин для записи тестов и могут использовать практически любые рамки модульного тестирования. Мы провели презентацию / демонстрацию на нашем местном собрании группы пользователей в прошлом месяце , и это выглядело удивительным.

 

[WatiN](http://watin.sourceforge.net/) это лучшее , что я нашел. Она интегрируется в Visual Studio тестирование блока или NUnit и вы можете делать почти все , что нужно в браузере (нажмите ссылки, отправлять формы, искать текст / изображения и т.д.), а также написано в .net , так что вам не нужно иметь установленный рубин (как это делается для Watir, который не является удивительным , ни один инструмент меньше)

 

Эти структуры могут быть использованы для *интеграции* тестирования, но они не могут обеспечить модульное тестирование, то есть, тестированием View изолированные от настойчивости, бизнес - логики, что угодно.

Для *блока* тестирования ASP.NET WebForms, а также MVC, вы можете использовать [Ивонна](http://sm-art.biz/Ivonna.aspx) . Например, вы можете издеваться ваш доступ к базе данных и убедитесь , что издевались записи отображаются в сетке. Или вы можете издеваться поставщиком членства и проверить вошедший в сценарии без необходимости перехода на страницу авторизации и ввода учетных данных, как и интеграционное тестирование.

 

Лучше всего отделяет модель логики от представления и тщательно Модульное тестирование модели с NUnit или аналогичный. Тестирование взаимодействия пользователей с веб-страницы может быть неудобным.

Если вы на самом деле хотите , чтобы блок тестирования взаимодействия пользователей с веб - страницы , некоторые из afformentioned инструментов , таких как waitn кажется хорошим, дополнение к тому , что я слышал это [Селен](http://seleniumhq.org/)