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

无法运行Jest测试用例:React组件测试JSX解析报错

解决Jest测试React组件时JSX解析报错的问题

你碰到的这个Unexpected token错误完全是因为Jest没法解析测试代码里的JSX语法——虽然你已经装了babel-jest,但缺少正确的Babel配置来处理React的JSX转译。咱们一步步来解决:

1. 安装必要的Babel预设

首先得安装处理React和ES语法的Babel预设,在终端运行:

npm install --save-dev babel-preset-react babel-preset-env

2. 添加Babel配置文件

在项目根目录新建一个.babelrc文件,写入以下配置,告诉Babel怎么转译你的代码:

{
  "presets": ["env", "react"]
}

这个配置会让Babel用env预设处理ES6+语法,用react预设处理JSX语法。

3. 适配Enzyme与React版本

你用的是Enzyme 3.x,它需要对应React版本的适配器才能正常工作。先查看package.json里的react依赖版本,比如如果是React 16.x,就安装对应的适配器:

npm install --save-dev enzyme-adapter-react-16

然后在你的测试文件开头加上适配器配置(也可以在Jest的全局setup文件里配置,避免每个测试都重复写):

import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

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

4. 修正测试用例的小细节

你的测试里show=true的写法不太规范,JSX里的布尔属性建议用大括号包裹(虽然简写也能生效,但统一写法更清晰),改成:

const component = shallow(<ThankYouPage show={true} />);

做完这些步骤后,再运行npm test应该就能正常解析JSX,顺利通过测试了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 08:52:40