2010-12-10 125 views
3

有没有一种方法来测试黄瓜和水豚列表的排序。排序是用JavaScript完成客户端。用黄瓜和水豚进行测试排序

我想沿着线的东西:

Then I should see "first element" and then I should see "second element" 

不幸的是我不知道如何处理建设的步骤。

感谢您的帮助!

+4

*“测试与黄瓜和水豚排序” *听起来像一个恶意的玩笑开幕... ;-) – 2010-12-10 22:30:58

回答

7

将你正在测试的故事(你想要接近纯英文)和测试的实际实现(它隐藏在step_definitions中)分开是一个好主意。

有几种方法可以解决这个问题,这取决于你想测试什么。在第一种情况下,黄瓜测试是非常具有可读性,并把它归结为正确实施步骤定义:

Given that I am on page xyz 
And I have a list 
Then I should see the list in sorted order 

在这种情况下,你必须定义意味着什么,有一个列表(可以指定如果你愿意的话,它可以在步骤def中列出),然后意味着按照排序顺序查看列表(在这里你可以传递一个正则表达式,以确保在项目2之前看到项目1等)。

或者如果你喜欢被在黄瓜测试更详细的,你可以这样做,如:

Given that I am on page xyz 
Then I should see /item1.*item2.*item3/ 

假定列表已填充。

根据列表的位置,您可能必须使用within范围参数。

请记住,黄瓜是伟大的功能和集成测试,但可能不是正确的工具进行单元测试(查看所有边缘案例)。要在单元测试级别测试排序,我强烈建议使用QUnit。由于QUnit测试是静态页面,试试这招用于运行测试,水豚的一部分:

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']" 
+0

正则表达式 - 为什么我没有想到这一点? – 2010-12-10 23:31:07