Как протестировать POST-запросы с помощью NodeUnit и Express? - PullRequest
0 голосов
/ 10 июня 2011

Я пишу простой сервис REST в Node.js (просто экспериментирую), пытаясь выяснить, достаточно ли зрел Node.Я также использую NodeUnit для моего модульного тестирования.

Теперь NodeUnit отлично работает в качестве среды тестирования для тестирования GET-запросов, используя HttpUtils, однако тестирование POST-запросов не кажется очевидным.

Тестирование GET выглядит так:

exports.testHelloWorld = function(test) {
    test.expect(1);
    httputil(app.cgi(), function(server, client) {
        client.fetch('GET', '/', {}, function (resp) {
            test.equals('hello world'), resp.body);
            test.done();
        });
    });
}

Но как мне тестировать POST-запросы?Я могу изменить 'GET' на 'POST' и попытаться записать что-то для 'client', однако это не работает до вызова .fetch, потому что еще нет соединения.И это не работает в функции обратного вызова .fetch, потому что на тот момент запрос уже был выполнен.

Я изучил код узла узла, и, похоже, не поддерживаетсяРазмещение данных на данный момент.Итак, вот мои вопросы:

  • Что нужно для тестирования POST-запросов?
  • Должен ли я даже тестировать POST-запросы в модульном тесте, или это подпадает под интеграционный тест?и я должен использовать другой подход?

Ответы [ 2 ]

3 голосов
/ 10 августа 2011

Вы можете попробовать эту библиотеку вместо узла узла: https://github.com/masylum/testosterone

Она создана специально для тестирования веб-приложений через http.

0 голосов
/ 24 октября 2011

Я только что написал эту библиотеку для тестирования HTTP-серверов с помощью узла узла:

https://github.com/powmedia/nodeunit-httpclient

...