reactjs - 导入反应图时,Jest 因“未定义自我”而失败
问题描述
我试图创建一个与 npm 依赖项交互的基本笑话测试:react-diagrams
失败的测试
import { DiagramModel } from '@projectstorm/react-diagrams'
test('importing react diagrams', () => {
let x = DiagramModel
});
简单地引用DiagramModel
该类会导致此错误:
ReferenceError: self is not defined
> 1 | import { DiagramModel } from '@projectstorm/react-diagrams'
| ^
2 |
3 | test('importing react diagrams', () => {
4 | let x = DiagramModel
at Object.<anonymous> (node_modules/@projectstorm/react-diagrams/dist/index.umd.js:1:331)
at Object.<anonymous> (tests/DiagramModel.test.ts:1:1)
其他测试工作正常,并且在其他地方捆绑时依赖项工作正常。
jest.config.js
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
};
包.json
"jest": "^26.6.3",
"ts-jest": "^26.5.2",
...
有什么想法可以解决这个问题吗?
复制
解决方案
经过一些测试,它最终可以使用此配置:
jest.config.js
module.exports = {
preset: 'ts-jest',
testEnvironment: 'jsdom',
};
包.json:
{
"name": "jest-test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"jest": "^26.6.3",
"ts-jest": "^26.5.2"
},
"scripts": {
"test": "jest"
},
"dependencies": {
"@emotion/react": "^11.1.5",
"@emotion/styled": "^11.3.0",
"@projectstorm/react-canvas-core": "^6.5.2",
"@projectstorm/react-diagrams": "^6.5.2",
"@projectstorm/react-diagrams-routing": "^6.5.2",
"closest": "^0.0.1",
"dagre": "^0.8.5",
"pathfinding": "^0.4.18",
"paths-js": "^0.4.11",
"react": "^17.0.2",
"resize-observer-polyfill": "^1.5.1"
}
}
@projectstorm/react-diagrams
您错过了一个react
图书馆这一事实,它不需要dom
环境nodejs
。
推荐阅读
- r - 计算样本量以进行 mcnemar 测试
- c# - 我该如何做用户输入时间 word.Add
- c# - Visual Studio 没有找到我的 Specflow 测试 - 可能的原因?
- python - 径向中值剖面 Python 3.6
- sql - JSON 提取值
- javascript - Mongoose如何将数组从子更新到父
- c++ - 如何使用 QCustomPlot 作为头文件?
- grpc - 什么是 grpc 中的 _MultiThreadedRendezvous 以及如何解析它
- c++ - 为什么我的析构函数没有在程序结束时被调用?
- docker - express js中间件没有使用docker-compose连接