шутка и жасмин в угловом проекте - PullRequest
1 голос
/ 24 апреля 2019

Я эффективно заменил карму / жасмин на шутку в угловом проекте, и тесты работают отлично .... но:

Я не удалял жасмин (это нужно транспортиру), и теперь я сталкиваюсь с проблемой, что, если я использую spyOn вместо jest.spyOn в моих спецификациях, он использует шпион жасмина, а не шутку (которые реализованы по-разному). Это большой опыт разработчиков, и я хотел бы просто полностью удалить жасмин из моих модульных тестов, но я понятия не имею, как.

Как мне настроить мой tsconfig.spec.json, чтобы исключить жасмин во время компиляции моих файлов спецификаций?

Я использую jest-preset-angular, который использует ts-jest.

Если я не включил достаточно информации, пожалуйста, не стесняйтесь меня допрашивать!

Это мой tsconfig.spec.json файл:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/spec",
    "module": "commonjs",
    "target": "es5",
    "baseUrl": ""
  },
  "files": [
    "test.ts",
    "polyfills.ts"
  ],
  "include": [
    "**/*.spec.ts",
    "**/*.d.ts"
  ]
}

Это мой tsconfig.json файл:

{
  "compileOnSave": false,
  "compilerOptions": {
    "importHelpers": true,
    "outDir": "./dist/out-tsc",
    "baseUrl": "public",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types" <-- jasmine types are in here too!
    ],
    "lib": [
      "es2016",
      "dom"
    ],
    "module": "es2015"
  }
}

Мой конфиг jest говорит ts-jest использовать мой tsconfig.spec.json файл, подобный этому:

  "globals": {
    "ts-jest": {
      ...
      "tsConfig": "<rootDir>/public/tsconfig.spec.json" <-- here!
    }
  }

1 Ответ

1 голос
/ 24 апреля 2019

Jest основан на Jasmine, а включает «облегченную» версию ...

... поэтому spyOn существует в исходном коде Jest .


Он устарел и не имеет документов, но, как вы обнаружили, он все еще работает для его вызова.

Вероятно, он будет полностью удален в будущей версии Jest (устаревшие Jasmine части постепенно удаляются).


Чтобы помочь отследить звонки на spyOn, вы можете использовать опцию CLI errorOnDeprecated.

Запустить Jest вот так:

jest --errorOnDeprecated

... и вы увидите ошибку, зарегистрированную каждый раз, когда в ваших тестах вызывается spyOn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...