【发布时间】:2016-04-21 23:03:12
【问题描述】:
我知道这个错误经常出现在问题中,但尽管我努力了,我还是没能解决我的问题。
我有一个从 Parse 获取一些类别的服务。这在运行我的测试时成功完成,但我收到标题中显示的错误。
我的代码如下:
ParseService.js
angular.module('starter').service('ParseService', ['$q', function ($q) {
this.getAllCategories = function() {
var deferred = $q.defer();
var categories = [];
var query = new Parse.Query("Category");
query.find({
success: function(results) {
console.log('Succesfully queried Parse.');
for (var i = 0; i < results.length; i++) {
var result = results[i];
categories.push(result.get("name"));
}
deferred.resolve(categories);
console.log(categories);
},
error: function(error) {
console.log('Error querying Parse.');
console.log(error);
deferred.reject(error);
}
});
return deferred.promise;
};
}]);
ParseServiceTest.js
describe('ParseService', function(){
var service;
beforeEach(function(){
module('starter');
});
it ('should fetch Categories', function(done){
beforeEach(inject(function(ParseService){
service=ParseService;
}));
var promise = service.getAllCategories();
promise.then(function(categories){
expect(categories.length).toEqual(5);
done();
});
});
});
现在控制台输出如下:
'Succesfully queried Parse.'
['Pets', 'Automobile', 'Social', 'Retail', 'Technology']
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
服务似乎成功返回了类别,但由于某种原因,done() 方法从未执行。
您可以忽略我不模拟对 Parse 的调用这一事实。我知道这不是最佳做法。
【问题讨论】:
标签: angularjs jasmine angular-promise