【发布时间】:2022-01-03 13:42:43
【问题描述】:
我有一套简单的测试,在某些情况下我想模拟一个模块,而在某些情况下不是。但是,jest.mock() 仅在将其置于测试之外时才有效。任何人都知道为什么会这样以及我做错了什么?
这是我要模拟的函数的实际导入
import {hasSupport, getCallingCode} from 'utils/countryCallingCode';
这是这个函数的模拟:
jest.mock('utils/countryCallingCode', () => ({
getCallingCode: () => '1',
hasSupport: () => true,
}));
现在,工作场景是:
//imports
//mock
describe('...', () -> {
it('...', () -> {
});
});
这不起作用:
//imports
describe('...', () -> {
//mock
it('...', () -> {
});
});
这也不起作用:
//imports
describe('...', () -> {
it('...', () -> {
//mock
});
});
【问题讨论】:
-
另一种选择是尝试在不同的测试套件中使用
jest.spyOn