如何在jest测试文件中使用从typescript文件导入模块。
问题描述:
我用jest
来测试我的typescript
文件。如何在jest测试文件中使用从typescript文件导入模块。
import ClassA from '../classA';
jest.mock('../classA');
当我import
一个class
从我classA.ts
文件,jest
给我一个错误:
export default ClassA;
^^^^^^
SyntaxError: Unexpected token export
这里是我的jest
配置在package.json
:
"devDependencies": {
"@types/jest": "^19.2.3",
"jest": "^20.0.4",
"ts-jest": "^20.0.4",
"ts-node": "^3.0.2",
"typescript": "^2.3.2"
},
"jest": {
"transform": {
".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json"
]
}
答
{
"compilerOptions": {
"types": ["vue-typescript-import-dts"],
}
}
import Child = require('./child.vue')
import * as Child from './child.vue'
npm install vue-typescript-import-dts --save-dev
答
我结束了我的项目fb ts jest开沟TS-开玩笑赞成刚才复制/粘贴此代码到一个文件中。但是,我必须在代码中添加一点才能让es6模块在笑话测试中工作。
添加
|| path.endsWith('.js')
到if
声明。
答
尝试tsconfig.json
答
import { ClassA } from '../classA';
设置
allowSyntheticDefaultImports
到true
附加文档对你的回答,请 – pirs