我有以下代码:
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)
我究竟做错了什么?
最佳答案
您的测试最有可能比默认的2000ms超时花费更多时间。因此,您需要增加它。在您的情况下,由于每次为doAsync
运行测试时,您很可能总是需要增加它,因此我将调用顶级timeout
的describe
方法:
describe('doAsync', function () {
this.timeout(3000);
// tests...
});