javascript - 如何设置 jest 以测试画布
问题描述
无法使用画布运行开玩笑测试。我有适用于画布、上下文、dom 等的功能。如何正确设置 jest?
我曾尝试使用 jest-canvas-mock,但如何正确安装呢?
包.json
"devDependencies": {
***
"jest": "^24.8.0",
"jsdom": "^15.1.1",
***
},
"dependencies": {
***
},
"jest": {
"setupFiles": [
"jest-canvas-mock"
]
}
}
jest.config.js
module.exports = {
roots: [
'<rootDir>/src',
],
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$',
moduleFileExtensions: [
'js',
],
};
控制台日志:
TypeError: Cannot set property 'imageSmoothingEnabled' of null
15 | const canvas = document.createElement('canvas');
16 | const context = canvas.getContext('2d');
> 17 | context.imageSmoothingEnabled = false;
| ^
解决方案
尝试将jest-canvas-mock
库安装到 package.json 中。
npm install --dev jest-canvas-mock
然后将其导入您的测试文件。
import 'jest-canvas-mock'
推荐阅读
- asp.net-core - 为什么 GraphQL 查询在花括号前使用“query”关键字?
- go - NewIndexerInformer 和 NewSharedIndexInformer 之间的区别
- python - 将复杂的 JSON 导出为 CSV
- swift - 参数标签 '(of:, with:)' 不匹配任何可用的重载
- tensorflow - 安装 tensorflow 后可以删除 gcc 编译器吗?
- google-bigquery - 在 BigQuery 中展平表
- django - 如何创建将登录用户添加到函数的装饰器?
- javascript - 如何获取块中的元素?
- flutter - Dio 的 get 请求返回不完整的数据
- laravel - 从存储中返回图像响应以及其他数据?