Тестирование API-интерфейса Nodejs при возникновении ошибки зависания сокета с помощью SuperTest - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь добавить модульные тесты в мое приложение nodejs, используя mocha.

Я создал фиктивную конечную точку теста '/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 напрямую из браузера дает правильный ответ. Но он выдает эту ошибку при запуске теста.

Любая помощь, чтобы исправить это, будет очень полезна.

...