摩卡测试用例抛出错误:预计200" OK",得到403"禁止"

时间:2015-09-14 09:59:26

标签: javascript node.js express mocha mean

我使用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);

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。我发现我们使用中间件express-force-ssl app.use(force-ssl)强制在我们的应用程序中使用SSL。我们用一个标志来控制这种行为。当我做错时,测试用例运行良好。 所以,如果你不用旗帜来控制它。尝试删除该模块并运行测试用例。