В целом, я хочу знать:
- Содержатся ли макеты для проверки файлов или влияют на несколько файлов?
- Является ли Jest Scoping такой же, как JavaScript scoping? Макет в самой внутренней области имеет приоритет над внешними / глобальными макетами с тем же именем.
- Можно задать следующий вопрос: какие методы шутливого макета применяются к единицам, а какие - к локальной и глобальной областях?
Например, в следующей файловой системе:
rootFolder/
node_modules/
externalModule/
- index.js
__mocks__/
- externalModule.js
src/
- fileA.js
- fileB.js
- internalModule.js
__mocks__/
internalModule.js
__tests__/
- fileA.spec.js
- fileB.spec.js
У меня есть следующие вопросы:
- Будет
jest.mock('../internalModule, () => customImplementation)
в файле A. spe c. js влияет на fileB.spe c. js и наоборот? - Аналогично,
jest.mock('externalModule', () => customImplementation)
в fileA. spe c. js влияет fileB.spe c. js и наоборот ?. Выполнение `jest.mock ('Mocking внешних модулей (node_modules) - Как работают глобальные mocks? Будут ли они автоматически загружаться в файлы или я должен явно сделать
jest.mock('externalModule')
для его инициализации - Будет ли
jest.mock('externalModule', () => customImplementation)
иметь приоритет над глобальными макетами? Будет ли он переопределять глобальный макет между файлами? jest.spyOn(internalModule, 'someFunc').mockImplementationOnce(..)
будет издеваться над реализацией в течение всего срока службы модуля или только один вызов someFunc()
сбросит функциональность? - В соответствии с документами
jest.doMock
, в отличие от jest.mock
, НЕ будет поднимать макет "вверх". это в конце модуля? Или это повлияет и на будущие модули? - Будет ли
jest.unmock('externalModule')
для глобальных макетов, сбросить его для каждого файла?
Я видел очень противоречивое поведение и отсутствие документации, явно объясняющей это. Кроме того, я обнаружил, что документация либо повсеместно, либо недостаточно конкретна.
Заранее спасибо.
PS Я нашел o Есть вопросы с похожими названиями, такие как Как ограничить область применения Jest-функций Jest одним тестом и Области применения Jest при JOOK-функциях , но они не отвечают на мой вопрос.