2013-07-12 18 views
8

bu olağan bir durum düşünün:Yasemin'de yuvalanmış yöntem hakkında nasıl casusluk yapılır?

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

ben c casusluk istiyorsanız ve kolay olsa: o bir casus yaratır ama çalışmıyor Ancak

spyOn(a.b, 'c'); 

. Hata ya da öylesine gösterilir ve hata ayıklama yaparken bir casus olduğunu görebiliyorum.

Yuvalanmış bir yöntemde nasıl casusluk yapabilirim?

GÜNCELLEME

Çıktı geçerli: Object [object Object] has no method 'tohaveBeenCalledWith'

+0

Neyin işe yaramadığını açıklayabilir, çünkü bunu yapmanın doğru yolu budur. –

+0

@ AndreasKöberle (a.b.c) .haveBeenCalled() dışında yaptığım zaman Nesne [object Object] 'tohaveBeenCalled' yöntemine sahip değil –

cevap

2

Ben yazım hatası tahmin sorundur; iç içe işlevler üzerinde casusluk, özetlediğiniz gibi çalışır.

Muhafaza ile dikkatli olun: Yasemin işlevi toHaveBeenCalled(). tohaveBeenCalled() yazdığınızdan beri hata iletisi anlamlıdır (çünkü böyle bir yöntem yoktur). JavaScript büyük/küçük harfe duyarlıdır :-)

İlgili konular