2015-03-31 4 views
28
expect(view.$el.html()).toContain('Admin'); 

La vista contiene la parola "Admin" quindi mi aspettavo che restituisse true. Come posso raggiungere questo obiettivo?test del gelsomino verificare se html contiene testo e restituire booleano

expect(view.$el.html()).toContain('Admin'); 

Restituisce undefined. Come posso renderlo restituito true?

<header class="main"> 
    <div id="heading"> 
    <ul class="header-view right"> 
     <li class="inline"><a href="#link" class="button help-btn tab-btn"><span> </span>Help</a></li> 
     <li class="inline last"><a href="#og" class="button admin-btn tab-btn expand-admin"><span></span>Admin</a></li> 
    </ul> 
    </div> 
</header> 

Questo è ciò che viene restituito dal view.$el.html

Si prega di aiuto.

+2

Si prega di condividere alcuni codice html e menzionare tutte le librerie jquery che si sta utilizzando. Prova anche a riprodurre il tuo problema sul link jsfiddle e condividerlo. –

+0

'view. $ El.html()' cosa restituisce –

+0

@BhushanKawadkar sono nuovo al gelsomino- non so se posso usare jsfiddle per questo! io uso solo la spina dorsale jquery. Nessuna altra libreria – Spdexter

risposta

12

Dalla documentazione Jasmine:

Il matcher 'toContain' è per la ricerca di un elemento in un Array

Si sta tentando di trovare una stringa all'interno di una stringa quindi vorrei fare qualcosa di simile:

expect(view.$el.html().indexOf('Admin') !== -1).toBe(true); 
+0

Funziona! Grazie ! – Spdexter

+5

'toMatch' può anche essere usato: ' expect (view. $ El.html()). ToMatch ('Admin') '. Il matcher 'toMatch' è per le espressioni regolari. – fox

+2

Si prega di aggiornare la risposta in quanto questo è un pessimo modo di risolverlo e obsoleto. – hakunin

Problemi correlati