📅  最后修改于: 2023-12-03 15:20:23.105000             🧑  作者: Mango
supertest是一个基于node.js的模块,可用于对HTTP服务进行集成测试。该模块可以方便地模拟发送HTTP请求,以及对返回结果进行断言,从而实现自动化测试。
使用npm进行安装:
npm install supertest --save-dev
以下是一个简单的例子:
const request = require('supertest');
const app = require('./app');
describe('GET /', function() {
it('responds with json', function(done) {
request(app)
.get('/')
.set('Accept', 'application/json')
.expect('Content-Type', /json/)
.expect(200, done);
});
});
其中,app是要测试的HTTP服务的实例。向其发起GET请求并设置Accept头部的值为application/json,然后对返回结果进行断言。如果结果是JSON格式且状态码是200,则测试通过。
request(app)
.get('/')
.set('Cookie', 'foo=bar')
.expect(200, done);
request(app)
.post('/user')
.send({ name: 'foo' })
.expect(200, done);
request(app)
.get('/')
.expect('Hello World!', done);
request(app)
.get('/')
.expect('Content-Type', /json/)
.expect({ name: 'foo' })
.end(done);
supertest是一个测试HTTP服务的有力工具,省去了手动测试请求和断言响应的时间,提高了测试效率。同时,其简便易用的API可以让开发者更专注于业务逻辑的开发。