超测在应该失败的时候显示通过

Supertest shows passing when it should fail

这是摩根的输出

::ffff:127.0.0.1 - - [01/Dec/2016:23:44:19 +0000] "GET /temp HTTP/1.1" 404 17 "-" "node-superagent/2.3.0"

我写的测试是

var chai    = require("chai");
var request = require('supertest');
var server  = require("../app");

describe("Basic tests", function() {
  describe("Check if server is running", function() {
    it("Root endpoint returns 200", function() {
      request(server)
        .get('/temp')
        .expect(200)
        .end();
    });
  });
});

morgan 显示 404 代码,我也可以通过在 end() 中传递一个函数来确认,但测试 运行 在 mocha 中没有错误。我哪里错了?

问题在于测试是异步的,并且 mocha 假定,如果您不 return 测试中的承诺或指定回调函数,则您的测试是同步的(更多信息here).

所以,添加一个回调函数。

it("Root endpoint returns 200", function(done) {
  request(server)
    .get('/temp')
    .expect(200)
    .end(done);
});