超测在应该失败的时候显示通过
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);
});
这是摩根的输出
::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);
});