使用SuperTest进行Nodejs API测试引发套接字挂起错误

时间:2019-05-22 05:56:08

标签: node.js http express mocha supertest

我正在尝试使用mocha将单元测试添加到我的nodejs应用程序中。

我创建了一个虚拟测试端点'/test',该端点返回一个字符串,如下所示:

测试端点:

app.get(routeHelper.getURLPath('/test'), (req, res, next) => {
 res.send('Helloo from test route !!');
 next();
});

sample.test.js:

process.env.NODE_ENV = 'test';
let supertest = require("supertest");
let should = require("should");

let server = supertest.agent("http://localhost:9000");

describe('Routes', () => {

  it('sample test', (done) => {

    server
      .get("/test")
      .expect(200)
      .end(function(err,res){
       // console.log('***************Ressssssss*******   ', res.body);
        console.log('***************errrrrrrrrrrrrrr*******   ', err);
        res.status.should.equal(200);
        res.body.error.should.equal(false);
        done();
      });
    });
});

运行测试时,它会抛出如下所示的错误:

{ Error: socket hang up
at createHangUpError (_http_client.js:322:15)
at Socket.socketOnEnd (_http_client.js:425:23)
at Socket.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1094:12)
at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET', response: undefined }

直接从浏览器访问API可以正确给出响应。但是,运行测试时会抛出此错误。

任何解决此问题的帮助都将非常有帮助。

0 个答案:

没有答案