supertest test express中间件

时间:2014-04-02 15:25:57

标签: javascript node.js testing express supertest

发现以下关于如何在express中测试中间件的提示:
https://github.com/visionmedia/express/blob/master/test/req.xhr.js我想知道为什么我的考试总是过去。直到我注意到,当我从快递复制测试时,他们表现得一样。我试着拧紧它们但是它们不断传递: https://github.com/visionmedia/express/blob/master/test/req.xhr.js

我在这里缺少什么?

it('should return true when X-Requested-With is xmlhttprequest', function(done){
  var app = express();

  app.use(function(req, res){
    req.xhr.should.be.false; //set to false, to fail the test but it still passes
    res.end();
  });

  request(app)
  .get('/')
  .set('X-Requested-With', 'xmlhttprequest')
  .end(function(res){
    done();
  })
})

1 个答案:

答案 0 :(得分:2)

你没有错过任何东西,快递测试req.xhr永远不会失败。

如果运行您的示例,您将看到错误堆栈跟踪,但测试通过,因为:

  1. 在测试期间没有发现错误。
  2. 没有错误信息传递给done()函数调用。
  3. 我的修正案位于PR #2053

    1. 使用expect()将断言错误返回.end()
    2. 将任何错误信息传递给done()