2015-09-14 4 views
2

Я использую mochajs для моих тестовых примеров на стороне сервера приложений. В тестовых случаях отображается ошибка, Error: expected 200 "OK", got 403 "Forbidden". Я попытался использовать консольные журналы внутри функций, которые я пытаюсь проверить, но они никогда не исполняются. Я не могу это выяснить. Может кто-то помочь мне с этим.Ошибка в тестовых случаях Mocha Ошибка: ожидается 200 «ОК», получено 403 «Запрещено»

Мой контроллер

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

Его из-за того, что вы ожидаете 200 '.expect (200)', но ваша аутентификация завершается с ошибкой, и вы получаете 403. Проверьте имя пользователя/пароль, который вы отправляете. –

+0

Мои параметры верны. – Derocs

ответ

2

Я столкнулся с Сэмом e вопрос. Я узнал, что мы применяли SSL в нашем приложении, используя промежуточное ПО express-force-ssl от app.use(force-ssl). Мы использовали флаг для управления этим поведением. Когда я сделал это ложное, тестовые примеры прошли нормально. Итак, если вы не контролируете его с помощью флага. Попробуйте удалить этот модуль и запустить тестовые примеры.