2012-05-23 41 views
8

Tôi đang cố gắng để viết một số xét nghiệm trong Capybara rằng sẽ kiểm tra danh sách các ngày đều được sắp xếp một cách chính xác. Ví dụ tôi có một danh sách các ngày Wed 27 Jun 12, Mon 13 Aug 12, Thu 31 May 12 và khi tôi nhấp vào nút, nó sẽ sắp xếp lại các ngày bắt đầu từ sớm nhất: Thu 31 ngày 12 tháng 5, thứ tư 27 tháng 6 12, Tháng 8 13 12.kiểm tra một danh sách được sắp xếp theo thứ tự Capybara đúng

có cách nào ở Capybara mà bạn có thể viết bài kiểm tra như vậy.

Thông thường tôi sẽ sử dụng các phương pháp như vv page.find nhưng những phương pháp này sẽ chỉ tìm ra số ngày và không cho bạn biết nếu họ đã được sắp xếp theo đúng thứ tự.

Trả lời

15

Bạn cần phải sử dụng bộ chọn :nth-child css.

phép nói rằng danh sách các ngày đang ở trong một <ul> với id #dates, bạn có thể kiểm tra đơn đặt hàng với:

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) 

Giá trị đầu tiên được thông qua vào have_selector() được chọn của bạn, thứ hai (trong ví dụ này) là nội dung bạn mong đợi. Bạn không bị hạn chế chỉ chuyển nội dung chẳng hạn nếu mỗi ngày được liên kết với hành động Date#show bạn có thể thêm url: date_path(@date).

+3

Đã xảy ra lỗi tương tự. Câu trả lời tuyệt vời ở trên nhưng cần phải sử dụng một trong các điều sau: khóa không hợp lệ: nội dung, phải là một trong: văn bản,: hiển thị,: giữa,: count,: maximum,: minimum,: exact,: match,: wait – Yaron

Các vấn đề liên quan