如何使用NodeUnit和Express测试POST请求?

时间:2011-06-10 09:41:32

标签: http node.js express nodeunit

我正在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请求需要什么?
  • 我是否应该在单元测试中测试POST请求,或者是否属于集成测试,我应该使用其他方法吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用此库而不是nodeunit:https://github.com/masylum/testosterone

它专门用于通过http测试网络应用。

答案 1 :(得分:0)

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

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