Javascript 茉莉花-如何连锁一个“然后”和一个“最后”在一个假间谍中?

Javascript 茉莉花-如何连锁一个“然后”和一个“最后”在一个假间谍中?,javascript,angularjs,testing,promise,jasmine,Javascript,Angularjs,Testing,Promise,Jasmine,我有以下函数,它执行带有承诺和的服务调用。最后: myService.getStuff().then(function() { this.doStuffWhenServiceOK(); }, function () { this.doStuffWhenServiceFails(); }).finally(function() { this.doFinally(); }); 我正在与以下间谍一起监视此服务: spyOn(myService, 'getStuff').and.ca

我有以下函数,它执行带有承诺和
的服务调用。最后

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
未知。只是在
之后添加它。然后
似乎不是一个解决方案

return {
  then: function(successFn) { 
    return successFn();
  },
  finally: function(successFn) {
    return successFn();
  }
}
谁知道如何链接
。然后
。最后
callFake
间谍中


我使用Angular 1。返回finally函数

function then(succesFn, errorFn) {
    succesFn(); 
    return {finally:function() {}};
}