📜  supertest npm - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:23.105000             🧑  作者: Mango

介绍supertest

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);
发送POST请求
request(app)
  .post('/user')
  .send({ name: 'foo' })
  .expect(200, done);
断言响应体
request(app)
  .get('/')
  .expect('Hello World!', done);
断言响应体是JSON格式
request(app)
  .get('/')
  .expect('Content-Type', /json/)
  .expect({ name: 'foo' })
  .end(done);
总结

supertest是一个测试HTTP服务的有力工具,省去了手动测试请求和断言响应的时间,提高了测试效率。同时,其简便易用的API可以让开发者更专注于业务逻辑的开发。