测试列表按照正确的顺序排序

时间:2012-05-23 16:41:53

标签: ruby-on-rails selenium rspec automated-tests capybara

我正在尝试在水豚中编写一些测试,测试日期列表是否正确排序。例如,我有一个日期列表截止日期为6月27日星期三,8月13日星期一,5月31日星期四,当我点击按钮时,它将从最早的开始重新排列日期,即: 5月31日星期四12月12日星期三12月12日星期三12月13日。

在水豚中有没有办法可以编写这样的测试。

通常我会使用像page.find等方法,但这些方法只会找到日期而不会告诉你它们是否按正确顺序排序。

1 个答案:

答案 0 :(得分:15)

您需要使用:nth-child css选择器。

假设您的日期列表位于<ul>且标识为#dates,您可以通过以下方式测试订单:

page.should have_selector("ul#dates li:nth-child(1)", content: @date1.content)
page.should have_selector("ul#dates li:nth-child(2)", content: @date2.content)

传递到have_selector()的第一个值是您的选择器,第二个值(在此示例中)是您期望的内容。例如,如果每个日期都链接到您可以添加Date#show的{​​{1}}操作,则不仅限于传递内容。