BDD с Specflow и поддельным поведением браузера - PullRequest
4 голосов
/ 04 июля 2011

Я начал использовать SpecFlow, чтобы попытаться написать спецификации для одного из моих веб-приложений ASP.NET MVC. Я наткнулся на два основных вопроса, на которые я не нашел ответа в Google.

  1. Есть ли способ имитировать поведение браузера без необходимости создания фактического экземпляра браузера. Я знаю, что есть библиотеки, такие как «WatiN», которые позволяют создавать реальные экземпляры браузера, и я не хочу использовать их, поскольку это может значительно снизить производительность теста (мне нужно запустить их на сервере сборки)

  2. Причина, по которой мне нужно зависеть от браузера или фиктивного браузера, заключается в том, что я не хочу направлять свой тест на контроллеры, поскольку это не гарантирует, что все мои фильтры действий будут запущены при создании экземпляра контроллера напрямую (так как является частью движка asp.net mvc). Может ли кто-нибудь предложить мне подход к тестированию сценария моего контроллера - со всеми запущенными фильтрами действий (чтобы я мог не захотеть использовать браузер / пробный браузер)?

Спасибо

Шмель

Ответы [ 2 ]

6 голосов
/ 04 июля 2011

Если вы хотите проверить свой HTTP-конвейер, вам нужно что-то вроде WatiN, или вы должны вручную выполнить HTTP-запросы = для каждого теста вы должны вручную перехватить запрос и создать тот же самый с WebClient или HttpWebRequest в вашем тесте. Я бы использовал WatiN, потому что он делает настоящие сквозные тесты.

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

1 голос
/ 05 июля 2011

Я бы ознакомился с проектом Mara (https://github.com/remi/Mara), который является клоном Capybara (инструмент ruby) для .net.

Мара не только облегчает написание теста, но и позволяет вамвыбирать, как выполнять ваши тесты, с селеном, WatIn или безголовым, и даже с использованием упомянутого выше WebClient. В большинстве случаев это просто конфигурация.

...