【发布时间】:2017-06-02 05:30:20
【问题描述】:
以下是我在 Angular 1.5.x 中测试被拒绝的 Promise 的方法。更新到 1.6.1 引入了“可能未处理的拒绝”错误。我了解此错误的目的,但我还没有找到解决它的简单方法。 Jasmine (2.5.x) 的 and.throwError() 方法似乎由于错误而导致测试失败。
describe('TestTarget', () => {
let $q, $rootScope, TestTarget, SomeModel;
beforeEach(() => {
SomeModel = jasmine.createSpyObj('SomeModel', ['get']);
module('something');
module($provide => {
$provide.value('SomeModel', SomeModel);
});
inject((_$q_, _$rootScope_, _TestTarget_) => {
$q = _$q_;
$rootScope = _$rootScope_;
TestTarget = _TestTarget_;
});
});
describe('get()', () => {
it('on error, adds a danger message', () => {
SomeModel.get.and.returnValue($q.reject());
// SomeModel.get.and.throwError(); // doesn't work either
TestTarget.get();
$rootScope.$digest();
expect(SomeModel.get).toHaveBeenCalled();
expect(<< the rejection outcome of TestTarget.get().then() >>);
});
});
});
我想继续在我的模型、服务和控制器中传递被拒绝的 Promise。
【问题讨论】:
-
这真的取决于您如何实现
TestTarget.get,但请阅读我的答案作为示例,对它做出一些假设
标签: angularjs jasmine promise q