2017-05-25 94 views
2

我用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" 
    ] 
} 

回答

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

0

我結束了我的項目fb ts jest開溝TS-開玩笑贊成剛纔複製/粘貼此代碼到一個文件中。但是,我必須在代碼中添加一點才能讓es6模塊在笑話測試中工作。

添加

|| path.endsWith('.js') 

if聲明。

0

嘗試tsconfig.json

0

import { ClassA } from '../classA';

+0

設置allowSyntheticDefaultImportstrue附加文檔對你的回答,請 – pirs