我正在用 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 请求,还是属于集成测试,我应该使用另一种方法?