Unit testing 使用express在node.js中测试HTTP请求

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

我用express在“/session”上的一些post/get/del创建了一个简单的身份验证系统。我想测试一下,但是我似乎找不到一个简单的方法从服务器上测试
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.");
  }
});