Sil*_*aru 3 javascript ruby-on-rails cucumber capybara
有没有办法用Cucumber和Capybara测试列表的排序.使用javascript在客户端完成排序.
我正在思考以下问题:
Then I should see "first element" and then I should see "second element"
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何构建这些步骤.
谢谢您的帮助!
将您正在测试的故事(您希望接近简单的英语)和测试的实际实现(隐藏在step_definitions中)分开是一个好主意.
有几种方法可以解决这个问题,具体取决于您要测试的内容.在第一种情况下,cuke测试非常易读,它归结为正确实现步骤定义:
Given that I am on page xyz
And I have a list
Then I should see the list in sorted order
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须定义列表的含义(如果需要,可以在步骤def中将其分配给@list),然后按排序顺序查看列表意味着什么(这里您可以通过正则表达式,确保您在第2项之前看到第1项,等等.)
或者,如果你想在cuke测试中更加冗长,你可以做类似的事情:
Given that I am on page xyz
Then I should see /item1.*item2.*item3/
Run Code Online (Sandbox Code Playgroud)
假定列表已填充.
根据列表的位置,您可能必须使用within范围参数.
请记住,黄瓜非常适合功能和集成测试,但可能不是单元测试排序的正确工具(查看所有边缘情况).为了测试单元测试级别的排序,我强烈建议使用QUnit.由于QUnit测试是静态页面,尝试这个技巧来运行测试作为capybara的一部分:
Given I am on "/test/path/to/qunit/tests"
Then I should see "Whatever Title You have Assigned"
And I should see "0" within "//p[@id='qunit-testresult']/span/[@class='failed']"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |