我使用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"
]
}
答案 0 :(得分:0)
{
"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
答案 1 :(得分:0)
我最终放弃了ts-jest,而只是将此代码复制/粘贴到我的项目fb ts jest上的文件中。但是,我确实必须在代码中添加一位才能让es6模块在jest测试中工作。
添加
|| path.endsWith('.js')
到if
声明。
答案 2 :(得分:0)
尝试在allowSyntheticDefaultImports
true
设为tsconfig.json
答案 3 :(得分:0)
import { ClassA } from '../classA';