我已经在我的应用程序中引入了 Ajaxy 表排序,我想设置 Cucumber 测试来测试支持 javascript 和不支持 javascript 时的功能。
我使用的是 capybara,所以如果我使用标志 @javascript,它将使用 javascript 驱动程序运行测试。他们的标志是使用 javascript 运行场景两次,一次不运行吗?
类似下面的内容......
@test-both-javascript-and-non-javascript
Scenario: Table Search
When I fill in "search" with "Jonathan"
And I press "Search"
Then I should see the following users:
| Jonathan | Smith | jonathan@example.com | active |
最佳答案
使用@javascript 将驱动程序从默认切换到可以在您的页面上运行 javascript 的驱动程序。离开@javascript 并不意味着您正在测试“不支持 javascript 时”或“没有 javascript 支持”。 Then I should see "Javascript is not supported"
的测试在包含 <noscript>Javascript is not supported.</noscript>
的页面上使用默认驱动程序将失败(即没有@javascript 标记)。
如果你真的想用不支持的 javascript 进行测试,你应该配置一个禁用 javascript 的新驱动程序,并使用一个新标签(例如,@nojavascript)在 Before('@nojavascript')
中切换到该驱动程序。阻止并切换回 After('@nojavascript')
中的默认值堵塞。然后您可以专门使用该标记编写场景,并在您想要检查 javascript 何时被禁用时重复场景。
关于javascript - 如何测试支持 javascript 和不支持 javascript 的场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886668/