我正在嘗試編寫函數的單元測試,並且出現錯誤。我也不確定如何正確測試函數的其他部分。TypeError:undefined不是單元測試茉莉花時的對象
private dictionaryMap (loggedIn, response) {
const translations = this.convertToArrays(response.data.translations);
this.configureMomentLocale(language);
if (!loggedIn) {
this.cachePublicDictionary(translations);
}
// not testing this part
this.dictionary = new Dictionary({
translationMap: Object.assign({}, this.getPublicDictionaryFromCache() || {}, translations),
});
return this.rx.Observable.of(this.dictionary);
}
而且我的單元測試,到目前爲止是這樣的:
describe('dictionaryMap',() => {
it('calls configureMomentLocale()',() => {
const foo = {
'foo':'bar',
};
spyOn(service, 'configureMomentLocale');
service.dictionaryMap({}, false);
expect(service.configureMomentLocale).toHaveBeenCalled();
});
});
當我運行這個測試我得到這個錯誤:
TypeError: undefined is not an object (evaluating 'response.data.translationMap')
我需要嘲笑response.data .translations或分配json結構? (translation map:{'email':'email','forgotPassword':'Forgot password?'})
另外,我不確定如何正確測試函數的其他部分,如if語句或返回可觀察值。作爲單元測試的新成員,任何建議/幫助都非常感謝。
我覺得很蠢!我不敢相信我把他們弄錯了。非常豐富的答案,我從中學到了。謝謝。 –