【发布时间】:2019-11-21 11:10:07
【问题描述】:
我的单元测试和 Jest 遇到了一个奇怪的问题,我不知道如何解决。当我在file2.ts 中导入文件时,file1.ts 中相同文件的导入变为undefined。应用程序构建并运行,但单元测试不再起作用,并在file1.ts 中抛出以下错误:
TypeError: Cannot read property 'getModel' of undefined
这是代码:
file1.ts
import users from '../users';
const model = users.getModel();
...
file2.ts
import users from '../../users';
const model = users.getModel();
...
users.ts
export class User {
getModel() {
...
}
}
export default new User();
file2.ts 的单元测试会引发上述file1.ts 的错误,即使我只是专门为file2.ts 运行单元测试。
如果我在file2.ts 中注释掉const model = users.getModel();,则不会引发错误。
这是我的tsconfig.json 和我的jest.config.js 文件:
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"pretty": true,
"sourceMap": false,
"target": "es6",
"resolveJsonModule": true,
"esModuleInterop": true,
"allowJs": true,
"outDir": "./dist",
"baseUrl": "./src"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"dist",
"node_modules",
"**/*.spec.ts"
]
}
jest.config.js
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
collectCoverage: true,
coverageDirectory: './test-coverage'
};
有什么想法吗?
【问题讨论】:
标签: typescript jestjs