2015-09-14 23 views
2

我使用我的平均應用程序的服務器端測試例。測試用例mochajs都出現了一個錯誤,Error: expected 200 "OK", got 403 "Forbidden"。 我試圖用我試圖測試函數裏面控制檯日誌,但他們從來沒有得到執行。我無法找出問題。有人可以幫我弄這個嗎。摩卡測試用例拋出錯誤:預期的200「OK」,得到了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

我面臨的SAM e問題。我發現,我們被app.use(force-ssl)使用中間件express-force-ssl迫使SSL在我們的應用程序。我們用一個標誌來控制這種行爲。當我犯這個錯誤時,測試用例運行良好。 所以如果你不用旗幟來控制它。嘗試刪除該模塊並運行測試用例。