我正在用 Mocha/Node js 编写一个测试,并想使用 setTimeout 在执行代码块之前等待一段时间。
我怎样才能做到这一点?
似乎在 Mocha 测试用例中,setTimeout() 不起作用。 (我知道您可以为每个测试用例和每个测试文件设置超时,这不是我需要的。)
在使用Node运行的js文件中,即node miniTest.js
,这将等待3秒,然后打印setTimeout函数内的行。
miniTest.js
console.log('waiting 3 seconds...');
setTimeout(function() {
console.log('waiting over.');
}, 3000);
在使用 Mocha 运行的 js 文件中,即 mocha smallTest.js
,它不会等待,并且将完成执行并退出,而不会打印 setTimeout 函数中的行。
smallTest.js:
mocha = require('mocha');
describe('small test', function() {
it('tiny test case', function() {
console.log('waiting 3 seconds...');
setTimeout(function () {
console.log('waiting over.')
}, 3000);
});
});
最佳答案
您忘记在 it('tiny test case', function()
中传递参数并在 setTimeout 方法中的 console.log 之后调用 done()。
describe('small test', function(){
it('tiny test case', function(done){
console.log('waiting 3 seconds');
setTimeout(function(){
console.log('waiting over.');
done();
}, 3000)
})
})
关于javascript - 如何在 Mocha 测试用例中使用 setTimeout() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32730169/