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