Попытка протестировать процесс сервера Node.js с помощью Mocha

Довольно новый для Node.js

Сделал приложение, которое запускает процесс сервера и обслуживает файлы (не использует Express или какие-либо фреймворки). Теперь я пытаюсь выполнить его модульное тестирование.

Я пытаюсь использовать для этого тест мокко ... Я намеревался запустить свой серверный процесс, а затем выполнить запросы к нему, чтобы проверить ожидаемые результаты (код статистики, содержание тела и т. П.)

Однако он не работает должным образом, все запросы не могут подключиться к серверу ... Я уверен, что проблема в том, что узел просто выполняет один цикл процесса, а сервер не работает "в фоновом режиме". во время выполнения запросов или, возможно, сервер еще не запущен (запущен ASYNC) во время выполнения запроса?

В любом случае, мне было интересно, как правильно проверить это, я предполагаю, что либо мне нужно, чтобы сервер работал в фоновом режиме (например, разветвленный процесс), и / или, возможно, мне нужно было найти способ ожидания процесса сервера быть "вверх" Сначала, но не уверен, как.

Или хотя бы рекомендации по тестированию такого серверного процесса (с мокко или другим).

Благодарю.

Вот пример кода теста (Обновлено с оригинального вопроса)

var server = new Server302('./fixture/');

var instance;

describe('Tests', function() {

before(function(done) {
     instance = http.createServer(function(request, response) {
        console.log(request.url);
        server.serve(request, response);
    }).listen(8000);
    instance.on("listening", function() {
        console.log("started");
        done();
    });
});

after(function(done){
  instance.close();
  console.log("stopped");
  done();
});

it("Should fetch test.html", function(done) {
    console.log("test1");
    http.get("http://localhost:8000/", function(res) {
        res.on('data', function(body) {
            console.log(body)
            expect(body).toEqual("test");
            done();
        });
    })
});

Кажется, он выполняется по порядку, но все равно не работает с ошибкой подключения, тогда как он работает при тестировании вручную с помощью браузера:

started
test1
․․․stopped


  ✖ 1 of 1 tests failed:

  1) Tests Should fetch test.html:
  Error: connect ECONNREFUSED
  at errnoException (net.js:670:11)
  at Object.afterConnect [as oncomplete] (net.js:661:19)

Ответы на вопрос(3)

Ваш ответ на вопрос