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

如何以ES6模块方式使用Supertest?解决Jest测试API导入报错

解决Supertest中request导入的SyntaxError问题

你遇到的问题是因为Supertest v4及以上版本中,request是默认导出而非命名导出,所以用import { request } from "supertest";这种解构导入的方式会找不到对应导出项。

正确的导入方式

直接使用默认导入:

import request from "supertest";

示例:结合Jest测试API

import request from "supertest";
import app from "../path/to/your/app"; // 导入你的Express/Koa应用实例

test("测试GET接口返回状态码", async () => {
  const res = await request(app).get("/your/api/path");
  expect(res.statusCode).toBe(200);
});

可选:别名方式实现类似命名导入的写法

如果习惯解构的写法,可以通过别名将默认导出命名为request:

import { default as request } from "supertest";

额外检查点

  • 查看package.json中的supertest版本,确认是v4+;如果是v3及以下旧版本,虽然支持命名导入,但建议升级到新版本以获得更好的兼容性和安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:39:51