2012-05-23 45 views
8

我想在水豚寫一些測試,將測試日期列表排序正確。例如,我有日期列表星期三27 6月12日,星期一13 8月12日,星期四5月31日,當我點擊按鈕時,它將重新排列從最早的開始的日期,即: 5月31日星期四,6月27日星期三12月13日,12月12日。測試列表按正確的順序排序水豚

水豚有什麼辦法可以寫這樣的測試。

通常我會使用像page.find等方法,但這些方法只會找到日期,而不會告訴您它們是否按照正確的順序排序。

回答

15

您需要使用:nth-child css選擇器。

比方說你的日期列表是與ID #dates一個<ul>,你可以與測試順序:

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),則不限於傳遞內容。

+3

有相同的錯誤。上面的很好的答案,但需要使用下列之一:無效鍵:內容,應該是以下其中一個:text,:visible,:between,:count,:maximum,:minimum,:exact,:match,:wait – Yaron