开玩笑:类型错误:无法重新定义属性:窗口

Dud*_*dis 15 reactjs jestjs

当我在本地运行 jest 测试时yarn test:unit:watch,我从 jest 库中收到此错误:

Test suite failed to run

TypeError: Cannot redefine property: window

at Object.<anonymous> (node_modules/jest-canvas-mock/lib/index.js:11:17)
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?有什么问题吗?我尝试删除 node_modules 并重新安装,并再次克隆存储库,但它正在重复。其他人则没有面临这个问题。

dhi*_*ilt 15

除了@marcw(链接mockImplementation)提到的方法之外,由于我使用了同一线程(链接)中的方法,我能够通过更改来解决问题Object.create

global.window = Object.create(window);
Run Code Online (Sandbox Code Playgroud)

global.window ??= Object.create(window);
Run Code Online (Sandbox Code Playgroud)


skl*_*lnd 9

这是jest-canvas-mock 中的一个问题,已在 2.4.0 中修复。

升级到 2.4.0 或更高版本应该可以解决该问题,并允许使用节点 18 或更高版本。

  • 我无法证实这一点。已经到了2.4.0了,还是有问题。 (3认同)