0

我正在用 Node.js 编写一个简单的 REST 服务(只是在试验),试图弄清楚 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 回调函数中也不起作用,因为那时请求已经被执行了。

我查看了 nodeunit 代码,目前似乎不支持发布数据。所以这是我的问题:

  • 测试 POST 请求需要什么?
  • 我是否应该在单元测试中测试 POST 请求,还是属于集成测试,我应该使用另一种方法?
4

2 回答 2

3

你可以试试这个库而不是 nodeunit:https ://github.com/masylum/testosterone

它专为通过 http 测试 Web 应用程序而构建。

于 2011-08-10T17:28:24.177 回答
0

我刚刚编写了这个库,用于使用 nodeunit 测试 HTTP 服务器:

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

于 2011-10-23T23:51:58.047 回答