在“if (error?.stack)”中为快照设置 Jest 时出错

问题描述 投票:0回答:2

我打算创建快照测试,但一开始遇到了问题。

我在运行测试时遇到这样的错误:

    /Users/illia/WebstormProjects/TESTS/node_modules/jest/node_modules/jest-cli/build/cli/index.js:161
    if (error?.stack) {
              ^
SyntaxError: Unexpected token '.'

在测试文件中我没有错误

import renderer from 'react-test-renderer';

import PaymentDisclaimer from './PaymentDisclaimer';

    it('renders correctly when all default props', () => {
        const tree = renderer.create(<PaymentDisclaimer fullPrice={9} />).toJSON();
        expect(tree).toMatchSnapshot();
    });

套餐:

"react-test-renderer": "^18.2.0",
"jest": "^29.0.3",
"ts-jest": "^29.0.1", (was installed as possible solution)
javascript reactjs testing jestjs snapshot
2个回答
16
投票

当 jest 在不从 JS 读取新更新的节点版本下运行时,会发生这种情况。您需要在节点 14 或更高版本中运行它。

具体来说,

?.
中的
if (error?.stack)
是一个可选链接运算符,仅在版本14或更高版本中支持

您可以使用

nvm
切换节点版本:

$ nvm use 14 
Now using node v14.18.0 (npm v6.14.15)

检查节点版本管理器(nvm)


0
投票

我不知道为什么,但就我而言,我使用的是 nvm,并且我一一尝试了不同的版本,最终在节点 v14.12.0 上错误消失了。

© www.soinside.com 2019 - 2024. All rights reserved.