【发布时间】:2018-02-03 18:32:50
【问题描述】:
我现在正在编写一个 MEAN API,我有一个名为 /authenticate 的路由,用户可以在其中登录。下面我展示了它自己的路由。
// User Login Route - http://localhost:8080/api/authenticate
router.post('/authenticate', function(req, res) {
User.findOne({ username: req.body.username }).select('email username password').exec(function(err, user) {
if (err) throw err;
if (!user) {
res.json({ success: false, message: 'Could not authenticate user.'});
} else if (user) {
//Using comparePassword Method
if (req.body.password) {
var validatePassword = user.comparePassword(req.body.password);
if (!validatePassword) {
res.json({success : false, message : 'Could not authenticate password!'});
}
else{
res.status(200).json({success : true, message : 'User authenticated!'});
}
}
else{
res.json({success : false, message : 'Not password provided!'});
}
}
});
});
我现在正在尝试使用 mocha 和 chai 库测试路线。下面我展示了我用来测试这个功能的描述块。
describe('POST /authenticate', function() {
it('should return an error', function (done) {
var newUser = {
"username" : "testetet",
"password" : "hgfhghg"
};
chai.request(server)
.post('/api/authenticate')
.send(newUser)
.end(function (err, res) {
expect(res).to.have.status(201);
expect(res.body).to.have.property('message').equal('User Created.');
});
done();
});
});
正如您从上面的测试中看到的那样,测试应该失败,因为测试中的任何响应标准都不匹配应该从 API 返回的响应,但每次我运行它时它仍然会继续通过。
有没有人知道为什么会发生这种情况? 感谢您提前提供任何帮助。
【问题讨论】:
-
你有没有看过测试中的实际结束块?真的达到了吗?
标签: javascript node.js testing mocha.js chai