You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jest+SuperTest的Node.js单元测试中传递参数?

更规范的GET请求参数传递方式

SuperTest 提供了专门的 .query() 方法来传递查询参数,比直接拼接URL更清晰易维护,还能自动处理参数编码,完全符合你想要的「类似设置请求头/POST体」的单独传递方式。

修改你的测试代码如下:

const supertest = require('supertest');
const app = require('../../app');

describe('Get users', () => {
  it('Positive flow', async () => {
    const expectedResponse = {"status" : "success"};
    const res = await supertest(app)
      .get('/users') // 只保留基础路径,无需拼接参数
      .query({ offset: 0, limit: 25 }) // 用query方法传递参数对象
      .set({ 'Authorization': 'Basic qwdfthjjdfgtsx='});
    
    expect(res.statusCode).toEqual(200);
    expect(res.body).toEqual(expectedResponse);
  })
})

这种方式的优势:

  • 可读性更强:参数以键值对对象形式存在,一眼就能看清所有参数及对应值
  • 维护更方便:新增或修改参数直接在对象里调整,不用手动拼接URL字符串,避免拼写错误
  • 自动处理编码:如果参数包含特殊字符(比如空格、中文),.query()会自动完成URL编码,手动拼接容易出现编码遗漏问题

内容的提问来源于stack exchange,提问作者Renee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:27:36