2011-06-10 73 views
0

我在Node.js中编写了一个简单的REST服务(试验),试图弄清楚Node是否已经足够成熟了。我也在使用NodeUnit进行单元测试。如何使用NodeUnit和Express测试POST请求?

现在,NodeUnit可以很好地用作测试GET-requests的测试框架,但使用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(); 
     }); 
    }); 
} 

但是我怎么测试后 - 请求?我可以将'GET'更改为'POST'并尝试将某些内容写入'client',但是在调用.fetch之前这是行不通的,因为还没有连接。而且它在.fetch回调函数中也不起作用,因为那时候请求已经被执行了。

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

  • 测试POST请求需要什么?
  • 我是否应该在单元测试中测试POST请求,还是属于集成测试,我应该使用其他方法?
+0

既然你已经使用'express'我建议你看一下['expresso'(https://开头github上。 com/visionmedia/expresso),它是Express的测试框架。特别是['assert.response'](http://visionmedia.github.com/expresso/#assert-response-server-req-res-fn-msg-fn-) – Raynos 2011-06-10 10:50:31

回答