前言
在做nodejs
开发中,难免会遇到HTTP
相关的测试,一般需要依赖模块supertest
或者superagent
,supertest
依赖后者。
The motivation with this module is to provide a high-level abstraction for testing HTTP。
先从介绍说起,supertest
提供HTTP测试抽象接口。本质上来说,是直接向接口发起HTTP请求并解析结果,然后针对结果进行assert
。
参考文档
- https://github.com/visionmedia/superagent
- https://github.com/visionmedia/supertest
中间件测试示例----bodyparse.json
bodyparse
的作者测试用例跟我最初的思考有差异,但更简洁。原作者将中间件直接在createserver
回调函数中使用,此时的三个参数在实际使用时由express
进行控制,此处是显式声明。
function createServer(opts){
var _bodyParser = bodyParser.json(opts)
return http.createServer(function(req, res){
_bodyParser(req, res, function(err){
res.statusCode = err ? (err.status || 500) : 200;
re