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

前端之家收集整理的这篇文章主要介绍了javascript – 如何在Mocha测试用例中使用setTimeout()函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在Mocha / Node js中编写测试,并希望在执行代码块之前使用setTimeout等待一段时间.

我怎么能做到这一点?

看来在Mocha测试用例中,setTimeout()不起作用. (我知道你可以为每个测试用例和每个测试文件设置setTimeout,这不是我在这里需要的.)

在使用Node运行的js文件中,即节点miniTest.js,这将等待3秒,然后在setTimeout函数内打印该行.

miniTest.js

  1. console.log('waiting 3 seconds...');
  2. setTimeout(function() {
  3. console.log('waiting over.');
  4. },3000);

在使用Mocha运行的js文件中,即mocha smallTest.js,这将不会等待,并且将完成执行并退出而不会在setTimeout函数内打印该行.

smallTest.js:

  1. mocha = require('mocha');
  2.  
  3. describe('small test',function() {
  4. it('tiny test case',function() {
  5. console.log('waiting 3 seconds...');
  6. setTimeout(function () {
  7. console.log('waiting over.')
  8. },3000);
  9. });
  10. });

解决方法

您忘记在setTimeout方法中的console.log之后传递参数(‘tiny test case’,function()和call done()).
  1. describe('small test',function(){
  2. it('tiny test case',function(done){
  3. console.log('waiting 3 seconds');
  4. setTimeout(function(){
  5. console.log('waiting over.');
  6. done();
  7. },3000)
  8. })
  9. })

猜你在找的JavaScript相关文章