Как лучше всего выполнить модульное тестирование веб-страниц ASP.NET 2.0? [закрыто]

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

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

Обновить:

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

7.08.2008 03:23:45
7 ОТВЕТОВ
РЕШЕНИЕ

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

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

  1. Вы используете ASP.NET, а не обычный ASP
  2. Вы действительно не хотите тестировать свои веб-страницы, но логика, стоящая за ними. Модульное тестирование реальных .ASPX-страниц довольно болезненно, но для этого есть рамки. NUnitAsp один.

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

Либо MVP, либо MVC будут эффективными. Преимущество MVC заключается в том, что у Microsoft практически готов к работе фреймворк .

После того как вы выбрали шаблон структуры, который поощряет тестируемость, вам необходимо использовать инструмент модульного тестирования. NUnit - хорошая отправная точка. Visual Studio Professional имеет встроенный пакет тестирования , но NUnit + TestDrive.NET также работает в среде IDE.

Это своего рода взрыв информации. Я надеюсь, что некоторые, если это ударит. У Прагматической Книжной Полки есть хорошая книга, покрывающая тему .

34
27.12.2019 07:12:30
Visual Studio 2008 поставляется с MSTest и обеспечивает довольно плавные возможности модульного тестирования. Что касается ASP.NET MVC, то при создании нового проекта Visual Studio попросит вас также создать для него тестовый проект. Я использовал MVP и некоторые MVC раньше, что делает тестирование намного проще.
Jack Marchetti 24.06.2009 14:17:36
NUnitAsp больше не поддерживается: тот, кто написал его, делает верное замечание, что «знакомые люди используют слои представления для того, чтобы сделать ASP.NET настолько тонким, что такой инструмент, как NUnitAsp, не поможет».
Jeremy McGee 25.07.2009 20:08:54
Учитывая выбор модулей модульного тестирования от xUnit.net [ xunit.codeplex.com/] , NUnit и MSTest, я бы выбрал xUnit.net, написанный Джимом Ньюкирком, менеджером codeplex.com от Microsoft с Брэдом Уилсоном. JN также указан как создатель NUnit 2.0. По крайней мере, для меня это говорит о том, что старшие сотрудники Microsoft, такие как JN и BW, предпочитают игнорировать MSTest и NUnit. Аналогично, ASP.NET MVC был создан для тестируемости, см. Блог Роба Конери blog.wekeroad.com/blog/… . Кроме того, я провел большую часть четырех месяцев, оценивая xUnit.net против MSTest.
gerryLowry 10.06.2011 19:30:57

Примерно год назад была серия скринкастов на Полиморфном Подкасте, в которой было сделано довольно хорошее введение в реализацию MVP в ASP.NET. Реализованные таким образом, модульные тесты становятся более естественными.

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

4
7.08.2008 04:50:54

Взгляните на http://selenium.openqa.org/, он предлагает хороший автоматизированный способ встраивания модульных тестов в браузер. Есть хороший плагин Firefox для записи тестов и может использовать практически любой фреймворк для юнит-тестирования. В прошлом месяце мы провели презентацию / демонстрацию на собрании местной группы пользователей, и это выглядело потрясающе.

2
28.08.2008 02:26:00
Или см. Seleniumhq.org
David d C e Freitas 30.11.2011 13:40:11

WatiN - лучшее, что я нашел. Он интегрируется в модульное тестирование Visual Studio или nunit, и вы можете делать практически все, что вам нужно в браузере (щелкать ссылки, отправлять формы, искать текст / изображения и т. Д.), Плюс он написан на .net, поэтому вам не нужно установить ruby ​​(как вы делаете для watir, который, тем не менее, является отличным инструментом)

3
23.09.2008 01:10:22
Я не мог согласиться больше. Я использовал Watir довольно давно, но иногда у меня возникают проблемы с Ruby Framework. Гораздо приятнее использовать WatiN. Мне не нужно устанавливать ruby, и я получаю intellisense.
Ben Mills 9.07.2009 19:15:29
WatiN великолепен, и это ИНТЕГРАЦИОННЫЙ инструмент тестирования. Модульный тест! = Интеграционный тест.
Jaco Pretorius 18.02.2010 16:09:26
Да, я предположил, что это то, что они имели в виду, я ответил, прежде чем они прояснили вопрос.
Glenn Slaven 25.10.2012 22:46:01

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

Для модульного тестирования Asp.Net Webforms, а также MVC вы можете использовать Ivonna . Например, вы можете смоделировать доступ к вашей базе данных и убедиться, что проверенные записи отображаются в сетке данных. Или вы можете издеваться над провайдером членства и тестировать сценарий входа в систему, не переходя на страницу входа и не вводя свои учетные данные, как при интеграционном тестировании.

4
21.10.2008 20:35:51

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

Если вы действительно хотите провести модульное тестирование взаимодействия пользователей с веб-страницей, некоторые из предоставляемых инструментов, таких как waitn, кажутся хорошими, в дополнение к тому, о чем я слышал, это Selenium.

2
30.06.2009 05:05:30
Мои пальцы тоже часто допускают эту ошибку: это «WatiN», произносится «What-in» для «Тестирование веб-приложений в .NET» [ watin.org/] . Есть полезный инструмент под названием «WatiN Test Recorder» [ watintestrecord.sourceforge.net/] .
gerryLowry 10.06.2011 19:20:18