“茉莉花没有定义”

Jay*_*266 2 jasmine typescript

我最近将 Jest 版本从 24.x 更新到 27.0.0,这破坏了我的一项测试:

我的测试框架设置如下:

describe('PersonDescriber', () => {
  let service: PersonDescriber;

  const mock = {
    getAutocompleteResults: jasmine.createSpy().and.returnValue({features: [{relevance: 1, meta: {}},{relevance: 0}]}),
  };
}
Run Code Online (Sandbox Code Playgroud)

当我更新版本后,它现在就出错了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"
  },
Run Code Online (Sandbox Code Playgroud)

Tho*_*lik 7

默认测试运行程序已从jasmine2版本 24.x 更改为jest-circus/runner版本 27.x。您可以手动将运行器设置回样式jasmine2或将测试重写为jest-circus样式。配置键是testRunner. 您可以在以下位置找到更多信息

玩笑文档 24.x

玩笑文档 27.x

jest-circus