9

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

在 capybara 中有什么方法可以编写这样的测试。

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

4

1 回答 1

15

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

假设您的日期列表在<ul>id#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您可以添加的操作url: date_path(@date)

于 2012-06-01T09:29:48.613 回答