2013-07-12 8 views
8

considerare questa situazione usuale:Come spiare il metodo annidato in Jasmine?

var a = { 
    b: { 
    c: function() {} 
    } 
} 

voglio spiare c e anche se è facile con:

spyOn(a.b, 'c'); 

Tuttavia si crea una spia, ma non funziona. Nessun errore o così sono mostrati e posso vedere che c'è una spia durante il debug.

Come posso spiare un metodo nidificato?

UPDATE

uscita è: Object [object Object] has no method 'tohaveBeenCalledWith'

+0

Può spiegare cosa non funziona, perché questo è il modo giusto per farlo. –

+0

@ AndreasKöberle quando faccio eccetto (a.b.c) .haveBeenCalled() Ottengo oggetto [oggetto oggetto] non ha alcun metodo 'tohaveBeenCalled' –

risposta

2

Credo errore di battitura è il problema; spiare le funzioni annidate funziona bene come hai delineato.

Prestare attenzione al rivestimento: la funzione del gelsomino è toHaveBeenCalled(). Poiché hai scritto tohaveBeenCalled() il messaggio di errore ha senso (perché non esiste un tale metodo). JavaScript fa distinzione tra maiuscole e minuscole :-)

Problemi correlati