我有以下代码:
function ToDo(){
//something
}
ToDo.prototype.doAsync = function(cb){
setTimeout(cb,2000,true);
};
现在我正在尝试使用mocha测试此代码:
//async
describe('doAsync', function(){
it('getting callback in two seconds', function(done){
todo.doAsync(function(){
done();
});
});
});
结果我的测试失败了。
1 failing
1) todo doAsync getting callback in two seconds:
Error: timeout of 2000ms exceeded
at null.<anonymous> (/usr/local/lib/node_modules/mocha/lib/runnable.js:139:19)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
我做错了什么?
答案 0 :(得分:2)
您的测试最有可能需要比默认的2000毫秒超时完成一点点。所以你需要增加它。在您的情况下,因为您很可能始终需要在运行doAsync
的测试时增加它,我会调用顶级timeout
方法{{ 1}}:
describe
答案 1 :(得分:1)
尝试使用-t
标志增加mocha测试的超时时间:
-t, - timeout设置测试用例超时,以毫秒为单位[2000]
例如:
mocha -t 5000
默认时间是2秒,看起来在测试完成之前已经达到超时,因此Mocha假设存在问题并暂停测试。