【发布时间】:2019-09-20 03:00:42
【问题描述】:
我想在 angularjs 中模拟一个用于单元测试的服务,看起来像这样:
TranslationService.translate(args)
.then(function translated(value) {
//somecode
return;
})
.catch()
.done();
按照这个答案: How do I mock a service that returns promise in Angularjs Jasmine unit test?
这就是我模拟它的方法:
TranslateServiceMock = {
translate: jasmine.createSpy('translate').and.callFake(function() {
var deferred = $q.defer();
deferred.resolve('Remote call result');
return deferred.promise;
})};
但这似乎仍然不起作用,我猜是因为链接的“完成”和“捕获”方法,
这是我得到的错误:
TypeError: undefined is not a constructor (near '....done();...'
想不出为什么会发生这种情况或如何解决这个问题..
【问题讨论】:
-
.done方法不是 the Promise API 的一部分。
标签: angularjs unit-testing jasmine