笑话导入语句:“类型错误:无法将属性‘fillStyle’设置为 null”

Iva*_*ich 10 javascript phaser-framework jestjs babeljs

我输入:

npm test
Run Code Online (Sandbox Code Playgroud)

我得到:

在此输入图像描述

有趣的是,导入语句在 BootScene.test.js 文件中有效,但在导入的文件中不起作用。

我关注的是在 JEst 下不起作用的导入语句。所以我想这可能与 jest 使用的 Ecma Script 版本有关。所以我尝试了这个解决方案,但错误仍然存​​在。

这是这个问题的回购/分支。

当我输入npm start. 一切都进行得很快,没有任何错误。

小智 24

发生错误是因为 jestdom 无法添加画布,而我们需要这样做。对我来说,发生这种情况是因为我在应用程序中使用了lottiefiles。

这是我为我的反应应用程序修复它的方法。

安装 jest-canvas-mock 如下。

 npm i jest-canvas-mock
Run Code Online (Sandbox Code Playgroud)

然后转到 setup 文件(如setup-tests.js)并导入 jest-canvas,如下所示。

import "jest-canvas-mock";
Run Code Online (Sandbox Code Playgroud)

现在运行测试,你应该不会再出现错误了。

  • 为了清楚起见,如果您在 package.json 中定义 Jest,请在 package.json 中执行类似的操作。“setupFiles”:[“../setupTests.ts”,“jest-canvas-mock”], (4认同)

Iva*_*ich 6

我按照这个说明解决了这个问题。

在此输入图像描述

谢谢 CherryDt。

  • 欢迎自行回答,但请考虑在帖子本身中提供所有必要的信息。如果链接不可用,它就会变得毫无用处 - 对于此链接来说,这是很有可能的,因为 Medium 有付费专区。 (6认同)