我的问题集中在我的设置当前是否遵循关于带有 UI 验收测试的 BDD 的最佳实践方法。我正在使用带有 SpecFlow 的 WatiN 来构建我的 UI 验收测试,并将我的应用程序部署到 AppHarbor(一个云平台即 .Net 应用程序的服务)。AppHarbor 在部署时运行您的单元/集成测试,并且只有在您的测试通过时才会推送您的站点。所以我首先编写了一个基本的失败测试,如下所示:
Scenario: Navigation to homepage
When I navigate to /
Then I should be on the application homepage
与此测试相关的步骤使用 WatiN 打开浏览器并验证视图的标题属性是否设置为“欢迎”。我正在检查环境以确定使用 WatiN 浏览器测试的 URL。例如,如果在开发中导航到“http://localhost:49641/”作为主页。否则,导航到“http://myappharborapp.com/”。
我的问题是,如果您是第一次部署此应用程序,页面或视图实际上不存在,因此测试失败(因为该站点尚未上线)。例如,如果我稍后添加“关于”页面视图并首先编写失败的测试,这也会失败。当我推送更新时,测试将失败,因为“关于”页面尚不存在。
那么我的问题是:关于如何设置 UI 测试,我是否没有遵循最佳实践?应该如何设置这些测试以便它们在任何环境中通过?
非常感谢任何见解!