"jasmine is not defined"

"jasmine is not defined"

我最近将我的 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/",
      "@personDescriber/(.*)": "<rootDir>/personDescriber/",
      "@health/(.*)": "<rootDir>/health/",
      "@shared/(.*)": "<rootDir>/shared/"
    },
    "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 docs 24.x

Jest docs 27.x

jest-circus