我们在Angular应用程序中有一个解决承诺的模式,直到Angular 1.6.0为止我们一直很好:
resource.get().$promise
.then(function (response) {
// do something with the response
}, function (error) {
// pass the error the the error service
return errorService.handleError(error);
});
Run Code Online (Sandbox Code Playgroud)
以下是我们如何在Karma中触发错误:
resourceMock.get = function () {
var deferred = $q.defer();
deferred.reject(error);
return { $promise: deferred.promise };
};
Run Code Online (Sandbox Code Playgroud)
现在,随着1.6.0的更新,Angular突然抱怨我们的单元测试(在Karma中)因"可能未处理的拒绝"错误而被拒绝的承诺.但是我们正在处理调用错误服务的第二个函数中的拒绝.
Angular究竟在寻找什么?它是如何让我们"处理"拒绝的?
javascript angularjs karma-runner angular-promise angularjs-1.6