2013-07-12 19 views
8

は、この通常の状況考えてみましょう:Jasmineでネストされたメソッドをスパイする方法は?

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

私はCをスパイしたいが、それはして簡単ですけれども:それはスパイを作成しますが、それは動作しません。しかし

spyOn(a.b, 'c'); 

。エラーは表示されず、デバッグ時にスパイがあることがわかります。

どのようにネストされたメソッドをスパイすることができますか?

UPDATE

出力は次のとおりです。Object [object Object] has no method 'tohaveBeenCalledWith'

+0

何がうまくいかないか説明できるので、これが正しい方法です。 –

+0

@AndreasKöberle(a.b.c).haveBeenCalled()を除くオブジェクトを取得する[オブジェクトオブジェクト]にはメソッドがありません 'tohaveBeenCalled' –

答えて

2

私はタイプミスが問題であると思います。ネストされた関数を監視することは、概説したとおりにうまく機能します。

ケーシングには注意してください。ジャスミン機能はtoHaveBeenCalled()です。 tohaveBeenCalled()を書いたので、そのような方法がないので、エラーメッセージが意味をなさない。 JavaScriptは大文字と小文字を区別します:-)

関連する問題