尝试测试一个基于 Promise 的服务,它执行以下操作:
load : function(){
var deferred = $q.defer();
//Do misc async stuff
deferred.resolve();
return deferred.promise;
}
当尝试在 Karma + Jasmine 2.0 中对此进行测试时,我尝试使用它的 done() 回调,但它总是超时并且永远不会解决承诺。
beforeEach(inject(function ($injector) {
service = $injector.get('myService');
$window = $injector.get("$window");
$rootScope = $injector.get('$rootScope');
}));
describe('Call load', function () {
it('resolves its promise', function (done) {
service.load().then(function(){
expect(something).not.toBe(undefined);
done();
});
});
});
从 Jasmines 文档来看,这就是我应该如何使用 done() 和异步代码,但似乎问题是承诺永远不会解决