我一直在尝试将 jest 设置为我正在处理的使用 Phaser 的项目的测试框架,但我在试图模拟 Phaser 本身时遇到了困难。我首先遇到了缺少画布的问题,我可以通过链接解决这个问题。但现在我收到另一个错误“无法读取未定义的属性'位置'”。
jest.config.js:
module.exports = {
verbose: true,
roots: ['./src'],
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
moduleNameMapper: {
'\\.(css|less|scss)$': 'identity-obj-proxy'
},
setupFiles: ['jest-canvas-mock']
}
__mocks__/phaser.js:
const phaser = jest.genMockFromModule('phaser');
module.exports = phaser;
错误信息:
TypeError: Cannot read property 'position' of undefined
1 |
> 2 | const phaser = jest.genMockFromModule('phaser');
| ^
3 |
4 | module.exports = phaser;
at Image.get [as x] (node_modules/phaser/src/physics/matter-js/components/Transform.js:36:30)
at Array.forEach (<anonymous>)
at Array.forEach (<anonymous>)
at Array.forEach (<anonymous>)
at Array.forEach (<anonymous>)
at Array.forEach (<anonymous>)
at Object.<anonymous> (src/__mocks__/phaser.js:2:21)
at Object.<anonymous> (src/main.ts:3:1)
at Object.<anonymous> (src/main.spec.ts:3:1)
我正在查看该转换文件及其在吸气剂上的爆炸,因为 this.body 未定义:
get: function ()
{
return this.body.position.x;
},
有没有其他人有这个问题?我希望我只是有一些配置错误。