Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript supertest express中间件_Javascript_Node.js_Testing_Express_Supertest - Fatal编程技术网

Javascript supertest express中间件

Javascript supertest express中间件,javascript,node.js,testing,express,supertest,Javascript,Node.js,Testing,Express,Supertest,找到以下有关如何在express中测试中间件的提示: 我想知道为什么我的考试总是通过。直到我注意到当我从express复制测试时,它们的行为都是一样的。我试着把他们搞砸,但他们还是不停地传球: 我错过了什么 it('should return true when X-Requested-With is xmlhttprequest', function(done){ var app = express(); app.use(function(req, res){ req.xh

找到以下有关如何在express中测试中间件的提示:

我想知道为什么我的考试总是通过。直到我注意到当我从express复制测试时,它们的行为都是一样的。我试着把他们搞砸,但他们还是不停地传球:

我错过了什么

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();
  })
})

你没有错过任何东西,这是一个永远不会失败的快速测试

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

  • 它在测试过程中没有捕捉到错误
  • 没有向函数调用传递错误信息
  • 我的修复程序如下:

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