我正在尝试为我的后端express.js编写测试。 我的代码有效,但似乎CHAI无法正确发布我的JSON,而req.body为“ {}” 知道为什么吗?
当我说好的值决定要打破的时候,其他任何工作都会对该方法进行测试。
在Mocha.js中完成测试
it('/POST /logout => Logout a user by purging a session', (done) => {
let loginInfo = {};
loginInfo.usr = 'testuser';
loginInfo.psw = 'mochatesting197';
let agent = chai.request.agent(app);
let json = {};
json.logout = true;
agent.post('/login')
.send(loginInfo)
.then((res) => {
return agent.post('/logout')
.send(json)
.then((res) => {
res.should.have.status(200);
res.body.should.be.a('object');
res.body['success'].should.have.property('message').eql('YOU HAVE LOGGED OUT');
done();
})
}).catch((err) => {
done(err);
});
});
注销方法
router.post('/logout', function (req, res, next) {
if (req.body === undefined || (Object.keys(req.body).length === 0 && req.body.constructor === Object)) return res.status(400).json({
'err': {
'message': 'NO POST DATA'
}
});
if (!req.body.logout || req.body.logout === false) return res.status(400).json({
'err': {
'message': 'WRONG POST DATA'
}
});
if (!req.body.sessionId || req.body.sessionId === undefined) return res.status(400).json({
'err': {
'message': 'WRONG POST DATA'
}
});
client.del(req.body.sessionId);
req.session.destroy();
res.status(200).json({
'success': {
'message': 'YOU HAVE LOGGED OUT'
}
});
});