Каков наилучший способ тестирования приложений веб-форм (ASP.NET) - PullRequest
36 голосов
/ 23 сентября 2008

Как лучше всего протестировать мои веб-приложения?

Похоже, люди любят Ватин и селен.

Ответы [ 8 ]

29 голосов
/ 27 мая 2009

Просто интересно, почему вы бы назвали WatiN unit инструмент тестирования? В прошлый раз, когда я проверял, он запускал интеграционные тесты.

Лучшим способом было бы переместить весь код, который не зависит от HttpContext, в отдельную сборку и запустить модульные тесты, как обычно. Остальные можно проверить с помощью Ivonna . Она не проверяет поведение клиента, вот где WatiN может помочь; однако, если вы хотите протестировать свои страницы или элементы управления изолированно, она является вашим единственным выбором.

19 голосов
/ 23 сентября 2008

ОБНОВЛЕНИЕ : Учитывая, что WatiN находится в состоянии стагнации уже более года, я бы направил любого, кому нужны тесты веб-интерфейса, на селен , он постоянно используется и развивается многими участниками, и активно используется Google.

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

См. Следующие вопросы для похожих ответов:

15 голосов
/ 23 сентября 2008

Это самый большой недостаток Webforms - по всем практическим причинам он не поддается тестированию с точки зрения модульного тестирования тестируемых контроллеров и т. Д.

Это одно из главных преимуществ инфраструктуры MVC.

1 голос
/ 03 июня 2010

Я склонен отдавать предпочтение подходу отделения логики бизнеса от кода пользовательского интерфейса. Вот статья, которая описывает дружественный шаблон модульного теста (Model-View-Presenter)

http://www.unit -testing.net / CurrentArticle / How-To-Use-Model-View-Presenter-С-Сеть САШ-WebForms.html

0 голосов
/ 07 марта 2012

У меня был большой опыт использования Selenium. Веб-тесты могут быть очень хрупкими, но вот статья из моего блога, где я рассказываю о том, как сделать тесты менее хрупкими. http://www.unit -testing.net / CurrentArticle / How-To-Make-Web-тесты-Less-Fragile.html

0 голосов
/ 27 ноября 2008

Вот обзор Watin, Watir и Selenium http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/

Очевидно, что Selenium работал довольно медленно для тестировщика, но, если вы заметите, как отмечается в одном из комментариев, это только потому, что он поддерживает несколько браузеров.

Однако существует CTP (Community Technology Preview) версия WatiN, которая предлагает поддержку как для Internet Explorer, так и для автоматизации FireFox.

0 голосов
/ 23 сентября 2008

Я бы пошел с WATIR (Тестирование веб-приложений на Ruby) - http://wtr.rubyforge.org/. Мы (Acsys Interactive) используем уже около года, и инструмент великолепен.

Я разработал простую оболочку в .NET, чтобы я мог выполнять свои сценарии WATIR из модульных тестов. Фреймворк невероятен, и у вас есть вся мощь Ruby. Есть поддержка Firefox & Safari (проект FireWatir).

Это очень похоже на WATIN (на самом деле я думаю, что WATIN был вдохновлен WATIR), но я считаю, что сообщество WATIR намного больше, чем WATIN.

Существуют тестовые рекордеры, которые вы можете использовать, и множество учебных пособий.

Это действительно твой выбор. Если вам кажется, что тесты должны быть в .NET, и вы не хотите поддерживать какой-либо другой язык, тогда ваш выбор - WATIN. С другой стороны, если вы хотите попробовать забавный и довольно мощный язык сценариев (это то, чем является Ruby), тогда переходите на WATIR.

Вопрос к WATIN, ребята, поддерживает ли он FireFox / Safari?

0 голосов
/ 23 сентября 2008

Я бы использовал такой инструмент, как WaitIn:

"WatiN - это тестирование веб-приложений в .NET, и этот регистратор тестов будет генерировать для вас куски исходного кода, записывая ваши клики во встроенном браузере IE" (из блога Скотта Хансельмана - который я нашел благодаря в другой пост на StackOverflow

Сайт WaitIn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...