2013-12-13 18 views
6

Il mio codice in vista èassert_select fallisce con apostrofo (apostrofo) contenuti

<h3 id="account_owner">This is Jhon's account</h3> 

La linea di testare questo codice è

assert_select "h3#account_owner", "This is Jhon's account" 

test fallisce e dice

"Questo è l'account di Jhon "era previsto ma era Questo è Jhon & # x27; account s '

Inserisco uno spazio tra "& # x27;" perché converte anche in "output di questa domanda". Qualche ipotesi? O come dovrei testare questa linea?

+0

Provare ad aggiungere la codifica '#: UTF-8' alla prima riga del file di test, riferimento: http://stackoverflow.com/questions/20338047/integration-testing-html-special-characters –

+0

@Taiki Tried, ma non ha funzionato. –

risposta

3

non ho trovato una risposta valida, ma di esaminare quella linea che faccio qualcosa di simile assert_select "h3#account_owner", "This is Jhon's account".gsub("\'", '&# x27;')

Anche in questo caso, ho messo uno spazio tra "& # x27;" perché converte anche in "output di questa risposta". Sto ancora cercando un modo migliore per testarlo.

0
expect(rendered).to have_css(".columns", :text=>"This is John's account") 

Utilizzare have_css anziché assert_select.

+2

Si prega di evitare le risposte al solo codice e di spiegare la propria soluzione. – Micho

+1

Anche se questo snippet di codice può risolvere la domanda, [compresa una spiegazione] (// meta.stackexchange.com/questions/114762/explaining-entually-code-based-answers) aiuta davvero a migliorare la qualità del post. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. Cerca anche di non affollare il tuo codice con commenti esplicativi, questo riduce la leggibilità sia del codice che delle spiegazioni! – kayess