Stub是使用可组合中间件编写的

时间:2016-10-18 14:38:32

标签: node.js unit-testing sinon stubbing sinon-chai

我有这个中间件功能,用可组合中间件包编写。

var compose = require('composable-middleware');

module.exports.isAuthenticated = function () {
  return compose()
    .use(function (req, res, next) {
        var authToken = req.get('x-auth-token');
        if (!authToken) {
            return res.sendStatus(401);
        }
        next();
    });
};

我尝试用Sinon.js存根。如果是这样的话

module.exports.isAuthenticated = function (req, res, next) {
    var authToken = req.get('x-auth-token');
    if (!authToken) {
        return res.sendStatus(401);
    }
    next();
};

我会做的

sinon.stub(auth, 'isAuthenticated').callsArg(2);

但问题是我的函数使用了可组合中间件,我不知道如何存根。

1 个答案:

答案 0 :(得分:0)

Actually, the solution was pretty simple.

var compose = require('composable-middleware');

sinon.stub(auth, 'isAuthenticated', function() {
    return compose()
      .use(function (req, res, next) {
        next();
      });
  });