6

发现以下关于如何在 express 中测试中间件的提示:
https
://github.com/visionmedia/express/blob/master/test/req.xhr.js我想知道为什么我的测试总是通过。直到我注意到当我从 express 复制测试时,它们的行为相同。我试着把它们搞砸,但它们一直在通过: 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();
  })
})
4

1 回答 1

2

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

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

  1. 它在测试期间没有发现错误。
  2. 没有错误信息传递给done()函数调用。

我的修复在PR #2053中:

  1. 用于expect()将断言错误返回到.end().
  2. 将任何错误信息传递给done().
于 2014-04-15T04:22:14.977 回答