1
我有一個Express服務器,我正在使用Passport-local進行身份驗證。我有以下受保護的路線:Mocha Chai測試受保護的路線
app.post("/api/test", connect.ensureLoggedIn("/"), (req, res) => {
let test = new Test(req.body);
test
.save()
.then(data => {
return res.json(data);
})
.catch(e => {
return res.status(HTTP_RESPONDE_BAD_REQUEST).send(e);
});
});
我在想如何測試上面提到的路線,以確保用戶登錄。
這是我目前的測試(沒有通過,因爲我不是能夠發送驗證:
it("Testing protected route", done => {
chai
.request(server)
.post("/api/test")
.send(test)
.end((err, res) => {
expect(res.status).to.equal(200);
done();
});
});
我曾嘗試以下,但是當我運行測試他們重定向我到登錄頁面。
it("Testing protected route", done => {
chai
.request(server)
.post("/api/test")
.set('Authorization', 'Bearer ' + token) // user token id
.send(test)
.end((err, res) => {
expect(res.status).to.equal(200);
done();
});
});
it("Testing protected route", done => {
chai
.request(server)
.post("/api/test")
.set('token', token) // user token id
.send(test)
.end((err, res) => {
expect(res.status).to.equal(200);
done();
});
});
有沒有對此進行測試更簡單的方法?
你的第二個例子是這樣做,除了你需要登錄或以其他方式創建一個有效的'token'以正確的方式使用。 – doublesharp
我正在使用有效的令牌。它在郵差上工作正常 – Glund
我在我的應用程序中做的事情幾乎完全相同,它使用有效的令牌(並假設您有正確的標頭)正常工作。 – doublesharp