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

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();
});

额外注意点

  1. 测试回调函数可以用箭头函数或者普通函数,Jest会在测试执行时调用这个函数来运行你的断言逻辑。
  2. 如果后续仍遇到语法解析问题,可以排查:
    • 是否需要安装Babel插件转译ES6+语法(不过你这里用的是require,CommonJS模块应该无需额外配置)
    • Jest配置文件中是否开启了对应模块的支持
  3. 你的sum.test.js能通过,正是因为它的测试结构是正确的,和这个错误案例形成了明确对比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:17:33