超级testing表示中间件

发现以下关于如何testing中间件的提示:
https://github.com/visionmedia/express/blob/master/test/req.xhr.js
我想知道为什么我的testing总是通过。 直到我注意到,当我从expression复制testing他们performance相同。 我试图搞砸了,但他们不断传递: 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(); }) }) 

你没有错过任何东西,这是明确的testingreq.xhr永远不会失败。

如果运行你的例子,你会看到错误stacktrace,但testing通过,因为:

  1. 在testing过程中没有发现错误。
  2. 没有错误信息传递给done()函数调用。

我的修复程序在PR#2053 :

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