我有以下功能,使用promise和.finally
进行服务调用:
myService.getStuff().then(function() {
this.doStuffWhenServiceOK();
}, function () {
this.doStuffWhenServiceFails();
}).finally(function() {
this.doFinally();
});
我正在使用以下间谍监视这项服务:
spyOn(myService, 'getStuff').and.callFake(function() {
return {
then: function (succesFn, errorFn) {
return succesFn();
}
};
});
问题是该测试抱怨.finally
未知。只是在.then
之后添加它似乎不是一个解决方案......
return {
then: function(successFn) {
return successFn();
},
finally: function(successFn) {
return successFn();
}
}
谁知道如何在.then
间谍中链接.finally
和callFake
?
我使用Angular 1。
答案 0 :(得分:1)
返回finally函数。
function then(succesFn, errorFn) {
succesFn();
return {finally:function() {}};
}