Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Mocha如何通过我的异步测试知道等待和超时?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我用摩卡测试时,我经常会同时运行异步和同步测试.

当我的测试是异步的时,摩卡处理这个美丽地允许我指定回调,完成.

我的问题是,摩卡内部如何观察我的测试,并知道它应该等待异步活动?在我的测试功能中定义回调参数的任何时候似乎都等待.您可以在下面的示例中看到,第一个测试应该超时,第二个应该继续,并在user.save调用匿名函数之前完成.

// In an async test that doesn't call done,mocha will timeout.
describe('User',function(){
  describe('#save()',function(){
    it('should save without error',function(donE){
      var user = new User('Luna');
      user.save(function(err){
        if (err) throw err;
      });
    })
  })
})

// The same test without done will proceed without timing out.
describe('User',function(){
      var user = new User('Luna');
      user.save(function(err){
        if (err) throw err;
      });
    })
  })
})

这个node.js是否具体魔法?这是可以在任何Javascript中完成的?

解决方法

这是简单的纯Javascript魔术.

函数实际上是对象,它们具有属性(比如参数的数量是用函数定义的).

看看如何在mocha / lib / runnable.js中设置this.async

function Runnable(title,fn) {
  this.title = title;
  this.fn = fn;
  this.async = fn && fn.length;
  this.sync = ! this.async;
  this._timeout = 2000;
  this._slow = 75;
  this.timedOut = false;
}

摩卡的逻辑根据您的功能是否由参数定义而进行更改.

大佬总结

以上是大佬教程为你收集整理的node.js – Mocha如何通过我的异步测试知道等待和超时?全部内容,希望文章能够帮你解决node.js – Mocha如何通过我的异步测试知道等待和超时?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。