在测试中,我经常有一个设置,在beforeEach
中,我为API对象上的单个函数创建了模拟程序。
beforeEach(() => {
store = mockStore({
dev: {
settings: {
useStaticSchemasMocks: false,
},
},
});
MGZManager.call = jest.fn(() => new Promise(resolve => resolve(schemas)));
});
我想知道:重置模拟(例如MGZManager.call
)的正确方法是什么,以便在每次进行新测试时,所有模块/函数/等都还原为原始实现。还是在这种情况下会自动重置?
我看到了这种方法:
afterEach(() => {
jest.restoreAllMocks();
});
是可行的方法,但仅适用于jest.spyOn
的模拟,不适用于MGZManager.call = jest.fn
这样的分配