我使用mochajs作为我的平均应用程序服务器端测试用例。测试用例显示错误Error: expected 200 "OK", got 403 "Forbidden"
。
我尝试在我试图测试的函数中使用控制台日志,但它们永远不会被执行。我无法找出问题所在。有人可以帮我弄这个吗。
我的控制器
exports.signin = function(req, res) {
req.body.username = new Buffer(req.body.username, base64').toString('ascii');
User.findOne({
username: req.body.username.toLowerCase()
}, function(err, user) {
if (err) {
//do something
} else if (!user) {
//do something
} else {
//do something
}
});
};
我的测试用例
it('should be able to signin if the credentials are valid', function(done) {
var obj = {
username: new Buffer('demo').toString('base64'),
password: new Buffer('demouser').toString('base64')
};
agent.post('/auth/signin')
.send(obj)
.expect(200)
.end(function(signinErr, res) {
if (signinErr){
console.log(signinErr);
done(signinErr);
}
else{
var temp = res.body;
console.log(temp);
done();
}
});
});
我的路线
app.route('/auth/signin').post(users.signin);
答案 0 :(得分:3)
我遇到了同样的问题。我发现我们使用中间件express-force-ssl
app.use(force-ssl)
强制在我们的应用程序中使用SSL。我们用一个标志来控制这种行为。当我做错时,测试用例运行良好。
所以,如果你不用旗帜来控制它。尝试删除该模块并运行测试用例。