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

React+Jest测试出现ReferenceError: expect is not defined问题求助

问题解决方案

报错原因

ReferenceError: expect is not defined 报错是因为错误使用--setupFiles参数加载setupTests.js,setupFiles 是Jest测试环境初始化前执行的脚本,此时Jest的全局变量expect还未挂载,提前引入@testing-library/jest-dom/extend-expect需要依赖全局expect,所以触发报错。另外你的配置存在多处冗余内容,也会增加冲突概率。

修复步骤

  • 第一步:修改package.json中的test命令,移除手动指定的setupFiles配置,create-react-app默认会自动加载src/setupTests.js,无需额外配置:
"test": "react-scripts test --env=jsdom"
  • 第二步:清理setupTests.js中的重复引入,修改后内容如下:
import { configure } from "enzyme"
import Adapter from "enzyme-adapter-react-16";
import '@testing-library/jest-dom';

configure({ adapter: new Adapter() });

注:最新版@testing-library/jest-dom已经整合extend-expect能力,无需单独引入extend-expect文件,保留一次引入即可

  • 第三步:删除测试用例中重复的enzyme配置行configure({ adapter: new Adapter() });,该配置已经在setupTests.js中全局生效,无需在单测文件中重复声明。

修改完成后重新运行测试命令即可正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:06:03