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

Довольно новичок в Node.js

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

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

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

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

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

Спасибо.

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

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();
        });
    })
});

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

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)
13
задан Yves M. 30 April 2015 в 21:11
поделиться