【发布时间】:2018-12-02 19:56:30
【问题描述】:
我对 TypeScript(和 JavaScript)还很陌生,所以这可能很明显,但我不明白使用像 ts-jest 这样的预处理模块来针对 TypeScript 代码运行 Jest 测试有什么意义。我正在 Node 上开发一个 TypeScript 项目,我正在使用 Jest 测试所有内容,到目前为止它运行良好。
我正在将我的 TypeScript 代码(和测试)转换为 JavaScript (ES5),然后我正在使用 Jest 对转换后的 ES5 JavaScript 运行 Jest - 一切正常,无需 ts-jest。
那么使用 ts-jest 有什么意义呢?换句话说——我会在什么情况下使用它?
我看到过像 here 这样的建议,使用 ts-jest 来“预处理打字稿文件”,但我不明白。我认为 TypeScript 的全部意义在于它为您处理所有这些,那么为什么您需要使用 ts-jest 单独执行这些操作呢?此外,没有它我也能过得很好。
也许我没有得到:
- 转译和预处理的区别
- Jest的transform property的含义
这是我的 tsconfig.json:
{
"compilerOptions": {
"strictNullChecks": true,
"noImplicitAny": true,
"moduleResolution": "node",
"target": "es5",
"lib": [
"es6"
]
},
"include": [
"src/**/*",
"test/**/*",
],
}
这是我的 package.json 的 sn-p:
{
"scripts": {
"test": "jest",
"dev": "nodemon ./src/app",
"start": "node ./src/app"
},
"devDependencies": {
"@types/express": "^4.16.0",
"@types/jest": "^23.1.1",
"jest": "^23.1.0",
"nodemon": "^1.17.5"
},
"jest": {
"transform": {},
"testRegex": "/test/.*\\.(ts|tsx|js)$"
}
}
【问题讨论】:
标签: javascript unit-testing typescript jestjs