我正在尝试创建一个 Jest 测试来测试实例化 LightningChartJS ChartXY 的类的实现。
在 Chart 的实例化过程中会抛出以下错误:
EngineError: Null pointer in i
...
at new i (../../node_modules/@arction/lcjs/dist/lcjs.js:1:8948)
at Ot (../../node_modules/@arction/lcjs/dist/lcjs.js:1:20740)
at new i (../../node_modules/@arction/lcjs/dist/lcjs.js:1:458125)
at ../../node_modules/@arction/lcjs/dist/lcjs.js:47:49973
at Object.ChartXY (../../node_modules/@arction/lcjs/dist/lcjs.js:47:211838)
at new LightningPlot (src/app/lightningChart.ts:70:8)
这个 GH 问题暗示了问题的根源:LightningChartJS 没有找到要插入的相应 DOM 节点。
到目前为止我已经尝试过:
- 将 jest-canvas-mock 导入设置(需要在 JSDom 中启用画布并避免此问题)
- 在设置期间使用 JSDom 导入来模拟 DOM(基于此 SO 答案)
- 使用 Jest testEnvironment
jest-environment-jsdom
配置
DOM mock 以多种方式进行了测试:
- 使用 createElement()
- 设置正文的innerHTML