我刚刚下载了mocha.js
,并使用expect.js
运行了一些基本测试,以确保它正常运行。
但是在我的node
应用程序中测试特定网址的响应呢?例如,我如何测试从导航到/users
得到的响应?
使用mocha.js的前身Expresso,我可以做assert.response(server, req, res|fn[, msg|fn])
并测试响应。
答案 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。