Мой вопрос сосредоточен на том, соответствует ли моя установка в настоящее время передовому подходу относительно BDD с приемочным тестированием пользовательского интерфейса.Я использую WatiN с SpecFlow для создания приемочных тестов пользовательского интерфейса и развертываю свое приложение в AppHarbor (облачная платформа как сервис для приложений .Net).AppHarbor запускает ваши модульные / интеграционные тесты после развертывания и запускает ваш сайт только в том случае, если ваши тесты пройдены.Поэтому я сначала начал с написания базового теста на неудачу следующим образом:
Scenario: Navigation to homepage
When I navigate to /
Then I should be on the application homepage
Шаги, связанные с этим тестом, открывают браузер с помощью WatiN и проверяют, что атрибуту заголовка представления задано значение "Добро пожаловать".Я проверяю среду, чтобы решить, какой URL проверять в браузере WatiN.Например, если в процессе разработки перейдите к «http://localhost:49641/" для дома». В противном случае перейдите к «http://myappharborapp.com/".
». Моя проблема в том, что если вы развертываете это приложение впервые, страница или представление фактически не существуют ипоэтому тест не пройден (поскольку сайт еще не запущен).Это также не получится, если, например, я позже добавлю представление «О программе» и сначала напишу провальный тест.Когда я нажимаю обновления, тест не пройден, потому что страница «О программе» еще не существует.
Мой вопрос: не придерживаюсь ли я передового опыта в отношении того, как вы должны настраивать свои тесты пользовательского интерфейса?Как настроить эти тесты таким образом, чтобы они проходили в любой среде?
Любое понимание очень ценится!