Unit testing 使用express在node.js中测试HTTP请求
我用express在“/session”上的一些post/get/del创建了一个简单的身份验证系统。我想测试一下,但是我似乎找不到一个简单的方法从服务器上测试Unit testing 使用express在node.js中测试HTTP请求,unit-testing,node.js,xmlhttprequest,express,Unit Testing,Node.js,Xmlhttprequest,Express,我用express在“/session”上的一些post/get/del创建了一个简单的身份验证系统。我想测试一下,但是我似乎找不到一个简单的方法从服务器上测试http.sendPut('/session',{data})。有人对图书馆的使用有什么建议吗 如果有帮助的话,我正在用摩卡咖啡/应该咖啡进行测试 下面是我想测试的超级简单的auth(它与其他东西挂钩): 谢谢。Express.js通过测试,supertest基于 如果您需要一些示例,可以在Express.js中找到 所有需要reques
http.sendPut('/session',{data})
。有人对图书馆的使用有什么建议吗
如果有帮助的话,我正在用摩卡咖啡/应该咖啡进行测试
下面是我想测试的超级简单的auth(它与其他东西挂钩):
谢谢。Express.js通过测试,supertest基于
如果您需要一些示例,可以在Express.js中找到
所有需要
request=require('./support/http')的测试
正在使用supertest。非常流行。目前为止,使用它,我需要一种方法在发送http请求后检查req.session。我在superagent或supertest中似乎找不到对此的任何支持,有什么想法吗?我认为supertest不可能做到这一点。它更像是一种黑盒式的测试,会话不直接存在于http请求中。您可能需要一种更具单元测试风格的测试,在这种测试中,您可以测试中间件(函数(req,res))并检查req或res的状态。我有一个助手模块,用于在项目中执行此操作。也许你可以从中得到一些想法。
//Login
app.post("/session", function(req, res) {
if (req.body.username === "admin" && req.body.password === "admin") {
req.session.user = "user";
res.send("Successfully logged in!");
} else {
res.send(403, "Invalid username or password.");
}
});
//Logout
app.del("/session", function(req, res) {
req.session.user = null;
res.send("Successfully logged out.");
});
//Am I logged in? Check for the client
app.get("/session", function(req, res) {
if (req.session.user) {
res.send(req.session.user);
} else {
res.send(403, "You are not logged in.");
}
});