我最近将 Jest 版本从 24.x 更新到 27.0.0,这破坏了我的一项测试:
我的测试框架设置如下:
describe('PersonDescriber', () => {
let service: PersonDescriber;
const mock = {
getAutocompleteResults: jasmine.createSpy().and.returnValue({features: [{relevance: 1, meta: {}},{relevance: 0}]}),
};
}
我更新版本后,它现在就出错了
jasmine
说:
ReferenceError: jasmine is not defined
知道发生了什么事吗?我需要手动导入
jasmine
吗?当我使用旧版本的 Jest 时,我在这个文件中没有导入 jasmine。
开玩笑:
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverage": true,
"coverageDirectory": "../coverage",
"collectCoverageFrom": [
"**/*.ts",
"!**/*.dto.ts",
"!**/*.model.ts",
"!**/*.module.ts",
"!**/main.ts",
"!**/configuration.ts"
],
"moduleNameMapper": {
"@config/(.*)": "<rootDir>/config/$1",
"@personDescriber/(.*)": "<rootDir>/personDescriber/$1",
"@health/(.*)": "<rootDir>/health/$1",
"@shared/(.*)": "<rootDir>/shared/$1"
},
"coverageThreshold": {
"global": {
"branches": 20,
"functions": 20,
"lines": 20,
"statements": 20
}
},
"testEnvironment": "node"
},
默认测试运行器已从版本 24.x 中的
jasmine2
更改为版本 27.x 中的 jest-circus/runner
。您可以手动将运行器设置回 jasmine2
或将测试重写为 jest-circus
样式。配置键是testRunner
。您可以在找到更多信息
jest-circus
检查您的进口。很可能你错过了“/jest” 我遇到了类似的问题,因为我从“@ngneat/spectator”而不是“@ngneat/spectator/jest”导入了这些元素。
正确导入:
import {
createComponentFactory,
mockProvider,
Spectator,
SpectatorFactory,
} from '@ngneat/spectator/jest';