2012-05-23 14 views
8

Estoy intentando escribir algunas pruebas en capibara que probarán que una lista de fechas está ordenada correctamente. Por ejemplo, tengo una lista de fechas Mié 27 Jun 12, Lunes 13 Ago 12, Jue 31 Mayo 12 y cuando hago clic en el botón se reordenarán las fechas comenzando desde la más temprana ie: Jue 31 12 de mayo, mié 27 jun 12, 13 de agosto 12.Probar una lista está ordenada en el orden correcto capybara

¿Hay alguna manera en el capibara de que pueda escribir tales pruebas?

Normalmente usaría métodos como page.find, etc. pero esos métodos solo encontrarán las fechas y no le dirán si se han ordenado en el orden correcto.

Respuesta

15

Debe utilizar el selector css :nth-child.

permite decir que su lista de fechas están en una <ul> con el id #dates, usted podría probar orden con:

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) 

El primer valor pasado a have_selector() Es el selector, el segundo (en este ejemplo) es el contenido que esperas No está limitado a pasar solo contenido, por ejemplo, si cada fecha vinculada a la acción Date#show puede agregar url: date_path(@date).

+3

Tenía el mismo error. Gran respuesta arriba pero necesita usar una de las siguientes: claves inválidas: contenido, debe ser uno de: texto,: visible,: entre,: contar,: máximo,: mínimo,: exacto,: coincidencia,: esperar – Yaron

Cuestiones relacionadas