【发布时间】:2020-02-24 09:44:49
【问题描述】:
我正在用 chai 和 mocha 编写一些测试,但遇到了一些麻烦。 例如,在我粘贴到这里的路由中,LOGOUT 调用 isLoggedIn 中间件来检查会话中是否存在用户。 例如,如果这样做:
it('Logout', function(done) {
chai.request(baseURL)
.post('/logout')
.end(function(err, res) {
expect(err).to.be.null;
expect(res).to.have.status(204);
done();
});
});
测试失败导致我收到 401 状态代码。我是这个测试东西的新手。我知道我必须使用 sinon 才能获得 mi 测试通过,但我无法得到解决方案。
这是我的路线:
'use strict';
const express = require('express');
const createError = require('http-errors');
const router = express.Router();
const bcrypt = require('bcrypt');
const User = require('../models/User');
const {isLoggedIn} = require('../helpers/middlewares');
router.post('/logout', isLoggedIn(), (req, res, next) => {
req.session.destroy();
return res.status(204).send();
});
这是中间件:
'use strict';
const createError = require('http-errors');
exports.isLoggedIn = () => (req, res, next) => {
if (req.session.user) {
next();
} else {
next(createError(401));
};
};
非常感谢!!!
【问题讨论】:
标签: node.js unit-testing mocha.js chai sinon