Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – node表示es6 sinon stubbing中间件无法正常工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为我的快递路由器编写mocha单元测试.
我发现无论如何我试图存根中间件,它仍然执行中间件@L_801_0@.
这是我的路由器&测试,有人可以搞清楚吗?

路由器:

import { aMiddleware,bMiddleware,cMiddleware } from '../middleware.js';

router.post('/url',aMiddleware,cMiddleware,function(req,res) { ... }

中间件:

AuthMiddleware.aMiddleware = async (req,res,next) => { 
  console.log('in real middleware');
  next();
}

测试:

var authMiddleware = require('../../middleware/auth.js');

describe('Test',async () => {
  before(function (donE) {
    _stuB_MIDDLEWARE_A = sinon.stub(authMiddleware,'aMiddleware');
    _stuB_MIDDLEWARE_A.callsArg(2);
  }
  after(function (donE) {
    _stuB_MIDDLEWARE_A.restore();
  }
}

终端将在中间件中显示console.log(‘真正的中间件’)

解决方法

这可能是因为存根发生在模块已经加载之后.您可能需要首先清除路由器文件的缓存,然后在存根后再次加载它,因为es6将缓存导入的模块.

大佬总结

以上是大佬教程为你收集整理的node.js – node表示es6 sinon stubbing中间件无法正常工作全部内容,希望文章能够帮你解决node.js – node表示es6 sinon stubbing中间件无法正常工作所遇到的程序开发问题。

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

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