总而言之,我想知道:
例如,在以下文件系统中:
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)
是否会影响 fileB.spec.js ,反之亦然?jest.mock('externalModule', () => customImplementation)
是否会影响 fileB.spec.js ,反之亦然?做`jest.mock('模拟外部模块(node_modules)jest.mock('externalModule')
才能初始化jest.mock('externalModule', () => customImplementation)
优先于全局模拟吗?它会覆盖文件中的全局模拟吗?jest.spyOn(internalModule, 'someFunc').mockImplementationOnce(..)
会在设备的整个生命周期内模拟实现,还是仅一次调用someFunc()
就会重置功能?jest.doMock
相比,文档jest.mock
不会将模拟“提升”。但是,在哪里呢?文件?它会在装置末端自动取消模拟或重置吗?还是会影响未来的单位?jest.unmock('externalModule')
用于全局模拟,是否为每个文件重置它?我看到了非常不一致的行为,也没有文档明确解释这一点。此外,我发现文档到处都是,或者不够具体。
谢谢。
P.S。我发现了其他标题相似的问题,例如How to limit the scope of Jest mocked functions to a single test和Scoping in Jest when mocking functions,但它们没有回答我的问题。