在node.js中测试响应?

时间:2012-02-24 13:01:08

标签: unit-testing node.js mocha

我刚刚下载了mocha.js,并使用expect.js运行了一些基本测试,以确保它正常运行。

但是在我的node应用程序中测试特定网址的响应呢?例如,我如何测试从导航到/users得到的响应?

使用mocha.js的前身Expresso,我可以做assert.response(server, req, res|fn[, msg|fn])并测试响应。

1 个答案:

答案 0 :(得分:6)

这是我喜欢Node.js / Javascript的一件事,一旦掌握了它,做这种事情很简单。

简而言之,您运行服务器代码,然后实际使用Request或Superagent来发出这些HTTP请求。我个人更喜欢Superagent,因为它是自动JSON编码,但要小心,文档已过时且不正确,YMMV。大多数人选择请求。

使用请求的简单Mocha示例:

describe('My Server', function(){
    describe('GET /users', function(){
        it("should respond with a list of users", function(done){
            request('http://mytesturl.com/users', function(err,resp,body){
                assert(!err);
                myuserlist = JSON.parse(body);
                assert(myuserlist.length, 12); 
                done(); 
            }); 
        }); 
    });
});

希望这会有所帮助。以下是使用此样式的我的Mocha(CoffeeScript)测试示例,其中包含完整的详细示例:https://github.com/jprichardson/logmeup-server/blob/develop/test/integration/app.test.coffee哦,是的,它也使用了Superagent。