2012-05-23 14 views
8

Sto provando a scrivere alcuni test in capibara che testeranno un elenco di date che sono ordinate correttamente. Ad esempio, ho un elenco di date Mer 27 giu 12, lun 13 ago 12, gio 31 maggio 12 e quando clicco sul pulsante, riorganizzerò le date a partire dal primo ad esempio: gio 31 maggio 12, mer 27 giu 12, 13 agosto 12.Il test di un elenco è ordinato nell'ordine corretto capybara

Esiste un modo in cui i capibara possono scrivere tali test.

Normalmente userei metodi come page.find ecc. Ma quei metodi troveranno solo le date e non diranno se sono state ordinate nell'ordine corretto.

risposta

15

È necessario utilizzare il selettore css :nth-child.

permette di dire la tua lista di date sono in <ul> con l'id #dates, si potrebbe verificare ordine 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) 

Il primo valore passato nella have_selector() è il vostro selettore, il secondo (in questo esempio) è il contenuto che ti aspetti Non sei limitato a trasmettere solo contenuti, ad esempio se ogni data collegata all'azione Date#show è possibile aggiungere url: date_path(@date).

+3

Aveva lo stesso errore. Ottima risposta sopra, ma è necessario utilizzare una delle seguenti opzioni: chiavi non valide: il contenuto deve essere uno tra: testo,: visibile,: tra,: numero,: massimo,: minimo,: esatto,: corrispondenza,: attesa – Yaron

Problemi correlati