javascript - 如何在 Mocha 测试用例中使用 setTimeout() 函数?

标签 javascript node.js mocha.js

我正在用 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/

相关文章:

javascript - 在 Node 中解析 JSON API

node.js - 使用 Node.js 测试 ElasticSearch填充 MongoDB 后强制更新索引

javascript - 如何通过修改 HTML 页面的 URL 来执行 javascript 函数?

javascript - onChanged 事件未从 iframe 中的输入字段触发

javascript - 与 Buffer().toString() 相反

javascript - 构建 NPM 包的最佳开发工作流程是什么?

javascript - Google 自动完成搜索栏默认值

javascript - 多次使用 jQuery $() 运算符是否会对性能产生影响?

node.js - 由于 Node.js 和 Angular 运行在不同的本地主机上,如何在 Angular 中使用 Nodemailer 电子邮件验证的路由?

regex - Mocha Supertest json 响应体模式匹配问题