1
嗨,我有一個角度服務。如何測試函數是否被調用(單元測試角)
...
return {
setMixpanel: function(searchObject){
searchObject["referrer"] ? mixpanel.register({"$referrer":searchObject["referrer"]}) : mixpanel.register({"$referrer":""});
}
}
在我的單元測試,我可能不得不spyOn
mixpanel
與register
一起。但我需要以某種方式模擬mixpanel.register。
如何正確模擬mixpanel.register
?代碼去哪裏。
我嘲笑它,如下所示:
var mixpanel={
register : function(object){
return object
}
};
但我在哪裏把這個代碼?這是對的嗎?
我希望有人能幫到我嗎?!
編輯: 測試本身看起來大概是這個樣子
it('should test', function(){
spyOn(mixpanel,'register');
redirectService.setMixpanel(search);
expect(mixpanel.register).toHaveBeenCalledWith('...');
})
但爲了做到這一點我需要模擬mixpanel。如果我只是spyOn混合面板,我會得到一個錯誤。
感謝您的評論的一些衝突。我知道我必須在其上創建一個間諜。像這樣的東西。 spyOn(mixpanel, '註冊'); redirectService.setMixpanel(obejct); ('...');預計(mixpanel.register).toHaveBeenCalledWith('...');但是,如果我不首先模擬mixpanel.register,它將不會被識別 – Dribel
欲瞭解更多信息,請通過編輯您的問題來分享您的測試代碼。 – trollr
我編輯我的文章。認爲應該幫助你:) – trollr