Javascript jasmine 2.0测试angularjs工厂方法,返回承诺
当我尝试测试一个返回承诺的函数时,我得到以下错误: 错误:超时-在超时内未调用异步回调 由jasmine.DEFAULT\u TIMEOUT\u INTERVAL指定 " 我的规格如下:Javascript jasmine 2.0测试angularjs工厂方法,返回承诺,javascript,angularjs,jasmine,jasmine-async,Javascript,Angularjs,Jasmine,Jasmine Async,当我尝试测试一个返回承诺的函数时,我得到以下错误: 错误:超时-在超时内未调用异步回调 由jasmine.DEFAULT\u TIMEOUT\u INTERVAL指定 " 我的规格如下: describe('async promise test', function () { beforeEach(module('app')); beforeEach(function () { jasmine.DEFAULT_TIMEOUT_INTERVAL = 6 * 1
describe('async promise test', function () {
beforeEach(module('app'));
beforeEach(function () {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 6 * 1000;
})
it('should match the name', function (done) {
inject(function ($rootScope,promiseTest) {
$rootScope.$apply(function(){
var promise =promiseTest.checkPromise();
promise.then(function(data){
console.log(data);
done();
})
})
})
})
});
请检查plunker链接以获取完整的代码您正在使用的
mock
模块,该模块覆盖$timeout
,因此测试是可重复的()
您必须使用$timeout.flush(1000)代码>(并且$apply()
是冗余的):
请参阅forked plunk:您必须将$timeout注入测试并刷新它:
inject(function ($rootScope,promiseTest, $timeout) {
$rootScope.$apply(function(){
var promise =promiseTest.checkPromise();
console.log("Created promise")
promise.then(function(data){
console.log(data);
done();
})
});
$timeout.flush();
请参见此处修改的plunker:
嘿,卡尔,实际上我正在测试索引数据库,它没有按预期工作。。。。链接:
inject(function ($rootScope,promiseTest, $timeout) {
$rootScope.$apply(function(){
var promise =promiseTest.checkPromise();
console.log("Created promise")
promise.then(function(data){
console.log(data);
done();
})
});
$timeout.flush();