Jest测试出现Unexpected keyword 'new'错误的原因及解决方案
修复Jest测试中的「Unexpected keyword 'new'」错误
你的问题根源其实不是语法不支持,而是测试函数的结构写错了,导致Jest无法正确解析你的代码逻辑。
错误原因分析
看你提供的测试代码:
const kubernetesClient = require('@kubernetes/client-node'); it('should exist a kubeconfig', { expect(new kubernetesClient.KubeConfig()).not.toBeNull(); })
这里的it函数第二个参数必须是一个测试回调函数,但你写成了用{}包裹的对象,这就导致Jest把里面的expect代码当成了对象的属性声明,自然会解析失败,抛出「Unexpected keyword 'new'」的错误。
修复后的代码
把第二个参数改成函数形式即可:
const kubernetesClient = require('@kubernetes/client-node'); it('should exist a kubeconfig', () => { expect(new kubernetesClient.KubeConfig()).not.toBeNull(); });
额外注意点
- 测试回调函数可以用箭头函数或者普通函数,Jest会在测试执行时调用这个函数来运行你的断言逻辑。
- 如果后续仍遇到语法解析问题,可以排查:
- 是否需要安装Babel插件转译ES6+语法(不过你这里用的是
require,CommonJS模块应该无需额外配置) - Jest配置文件中是否开启了对应模块的支持
- 是否需要安装Babel插件转译ES6+语法(不过你这里用的是
- 你的
sum.test.js能通过,正是因为它的测试结构是正确的,和这个错误案例形成了明确对比。
内容的提问来源于stack exchange,提问作者stein korsveien
相关产品推荐
相关产品推荐

