ค้นหาเว็บไซต์

typescript - "jasmine ไม่ได้ถูกกำหนด"


ฉันเพิ่งอัปเดตเวอร์ชันของ 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"
  },

คำตอบ #1

ตัวรันทดสอบเริ่มต้นถูกเปลี่ยนจาก jasmine2 ในเวอร์ชัน 24.x เป็น jest-circus/runner ในเวอร์ชัน 27.x คุณสามารถตั้งค่าตัวรันกลับไปที่ jasmine2 ด้วยตนเอง หรือเขียนการทดสอบของคุณใหม่เป็นสไตล์ jest-circus คีย์การกำหนดค่าคือ testRunner คุณสามารถหาข้อมูลเพิ่มเติมได้ใน

เอกสาร Jest 24.x

เอกสาร Jest 27.x

jest-circus

คำตอบ #2

ตรวจสอบการนำเข้าของคุณ คุณอาจพลาด '/jest' ฉันเคยมีปัญหาแบบเดียวกันเพราะฉันได้นำเข้าพวกองค์ประกอบเหล่านั้นจาก '@ngneat/spectator' แทนที่จะเป็น '@ngneat/spectator/jest'

การนำเข้าที่ถูกต้อง:

import {
    createComponentFactory,
    mockProvider,
    Spectator,
    SpectatorFactory,
} from '@ngneat/spectator/jest';

บทความที่เกี่ยวข้อง