“茉莉花没有定义”

问题描述 投票:0回答:2

我最近将 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"
  },
typescript jasmine
2个回答
7
投票

默认测试运行器已从版本 24.x 中的

jasmine2
更改为版本 27.x 中的
jest-circus/runner
。您可以手动将运行器设置回
jasmine2
或将测试重写为
jest-circus
样式。配置键是
testRunner
。您可以在

找到更多信息

Jest 文档 24.x

Jest 文档 27.x

jest-circus


0
投票

检查您的进口。很可能你错过了“/jest” 我遇到了类似的问题,因为我从“@ngneat/spectator”而不是“@ngneat/spectator/jest”导入了这些元素。

正确导入:

import {
    createComponentFactory,
    mockProvider,
    Spectator,
    SpectatorFactory,
} from '@ngneat/spectator/jest';
© www.soinside.com 2019 - 2024. All rights reserved.