Sto scrivendo un test controller per un'applicazione rails 3.1 utilizzando l'unità di prova 2.4.0.ArgumentError: il messaggio di asserzione deve essere String o Proc utilizzando assert_select
Voglio affermare che una determinata intestazione non appare sulla pagina.
sto usando assert_select come questo:
assert_select 'h1', {:text => /Key Dates/, :count => 0}
e ottenere il seguente errore:
ArgumentError: assertion message must be String or Proc: <</Key Dates/>
expected but was <"Planner Maternity leave">.>(<Test::Unit::Assertions::AssertionMessage>)
ho rintracciato questo giù al fatto che assert_select
chiamate build_message
che crea un'istanza di AssertionMessage
e passa attraverso allo assert
dell'unità di prova. Tuttavia nella versione 2.2 di testunit (febbraio 2011) sono stati aggiunti controlli che controllano il tipo di messaggio inoltrato. Questi controlli attivano lo ArgumentError
visto sopra.
Non sono sicuro che l'errore sia dovuto al fatto che l'unità di test è troppo rigida o assert_select che passa il tipo di oggetto sbagliato.
Potete consigliarvi il modo migliore per seguire questo? Qualche soluzione?
è il problema che il valore in ': text' dovrebbe essere una stringa, e non un pattern? – jefflunt
Ciao, no, è abbastanza accettabile per: il testo deve essere un Regexp – heathd