我正在使用 Capybara 来测试逐渐增强的网站上的功能。假设我的功能是在位置层次结构中导航。当我们点击不同的位置时,非 JavaScript 版本涉及获取页面的新版本。增强的 javascript 版本打开隐藏元素,或通过 Ajax 加载新信息。
我首先为非 javascript 版本编写一个测试,它看起来像这样:
When I visit the page for "UK"
And I click "London"
Then I should see the information for "London"
使用默认的机械化驱动程序,测试失败,我开发了功能,然后测试通过了。
然后我为 javascript 版本创建了一个相同的测试,用@javascript 标记。它使用 javascript 驱动程序运行测试,并且该测试通过,因为该功能已实现。(它通过非 js 流程运行)。但是,我希望 javascript 版本的测试在这一点上失败,因为该功能尚未使用 Javascript 增强。
所以我正在寻找一个好的策略来确定一个全新的页面是否来自服务器,并确保该功能的两个版本都有效。(我计划将此与 pushState 集成,因此不会对更改的 URL 进行测试)