2013-07-12 3 views
8

Betrachten Sie diese übliche Situation:Wie verschachtelte Methode in Jasmine auszuspionieren?

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

ich auf c auszuspionieren wollen und wenn ist es einfach, mit:

spyOn(a.b, 'c'); 

Doch es einen Spion schafft, aber es funktioniert nicht. Es werden keine Fehler angezeigt und ich kann sehen, dass es beim Debuggen einen Spion gibt.

Wie kann ich eine verschachtelte Methode ausspionieren?

UPDATE

Ausgang ist: Object [object Object] has no method 'tohaveBeenCalledWith'

+0

Kann erklären, was nicht funktioniert, denn dies ist der richtige Weg, es zu tun. –

+0

@ AndreasKöberle wenn ich außer (a.b.c) .haveBeenCalled() bekomme Ich bekomme Object [Objekt Objekt] hat keine Methode 'tohaveBeenCalled' –

Antwort

2

Ich denke, Tippfehler ist das Problem; das Ausspionieren verschachtelter Funktionen funktioniert gut, wie Sie beschrieben haben.

Vorsicht mit dem Gehäuse: Jasmine Funktion ist toHaveBeenCalled(). Da du tohaveBeenCalled() geschrieben hast, macht die Fehlermeldung Sinn (weil es keine solche Methode gibt). JavaScript ist case-sensitive :-)

Verwandte Themen