当前位置 : 主页 > 网页制作 > Nodejs >

node.js – node表示es6 sinon stubbing中间件无法正常工作

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在为我的快递路由器编写mocha单元测试. 我发现无论如何我试图存根中间件,它仍然执行中间件代码. 这是我的路由器测试,有人可以搞清楚吗? 路由器: import { aMiddleware, bMiddleware,
我正在为我的快递路由器编写mocha单元测试.
我发现无论如何我试图存根中间件,它仍然执行中间件代码.
这是我的路由器&测试,有人可以搞清楚吗?

路由器:

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

router.post('/url', aMiddleware, bMiddleware, 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将缓存导入的模块.
网友评论