代码之家  ›  专栏  ›  技术社区  ›  user3224014

超级测试测试表达中间件

  •  6
  • user3224014  · 技术社区  · 10 年前

    找到了以下关于如何在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();
      })
    })
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   shawnzhu    10 年前

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

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

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

    我的修复程序在 PR #2053 :

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