Ada*_*dam 5 jasmine typescript jestjs angular
我已经在一个有角度的项目中用笑话有效地替换了业力/茉莉花,并且测试运行得很好......但是:
我没有删除茉莉花(量角器需要它),现在我遇到了一个问题,如果我在规范文件中使用它spyOn,jest.spyOn它会使用茉莉花间谍而不是笑话间谍(它们的实现方式不同)。这是一种糟糕的开发人员体验,我想从我的单元测试中完全删除 jasmine,但我不知道如何做。
如何设置 tsconfig.spec.json 在编译规范文件期间排除 jasmine?
我正在使用jest-preset-angularwhich use ts-jest.
如果我没有提供足够的信息,请随时骚扰我以获取更多信息!
这是我的tsconfig.spec.json文件:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es5",
"baseUrl": ""
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的tsconfig.json文件:
{
"compileOnSave": false,
"compilerOptions": {
"importHelpers": true,
"outDir": "./dist/out-tsc",
"baseUrl": "public",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types" <-- jasmine types are in here too!
],
"lib": [
"es2016",
"dom"
],
"module": "es2015"
}
}
Run Code Online (Sandbox Code Playgroud)
我的笑话配置告诉我像这样ts-jest使用我的文件:tsconfig.spec.json
"globals": {
"ts-jest": {
...
"tsConfig": "<rootDir>/public/tsconfig.spec.json" <-- here!
}
}
Run Code Online (Sandbox Code Playgroud)
Jest基于Jasmine并包括“轻型”版本...
...sospyOn 存在于Jest源代码中。
它已被弃用且未记录,但正如您所发现的,它仍然可以调用它。
它很可能在未来的版本中被完全删除Jest(遗留的Jasmine部分正在逐渐被删除)。
为了帮助追踪对spyOn您的呼叫,可以使用errorOnDeprecatedCLI 选项。
Jest像这样启动:
jest --errorOnDeprecated
spyOn...并且您将在测试中随时调用时看到记录的错误。
| 归档时间: |
|
| 查看次数: |
2313 次 |
| 最近记录: |