最佳答案
在我的组件测试文件中有一个这样的模拟模块
jest.mock('../../../magic/index', () => ({
navigationEnabled: () => true,
guidanceEnabled: () => true
}));
这些函数将在我的组件的渲染函数中调用,以隐藏和显示一些特定的特性。
我想对这些模拟函数的返回值的不同组合进行快照。
假设我有一个这样的测试案例
it('RowListItem should not render navigation and guidance options', () => {
const wrapper = shallow(
<RowListItem type="regularList" {...props} />
);
expect(enzymeToJson(wrapper)).toMatchSnapshot();
});
为了运行这个测试用例,我想要修改模拟模块函数,像这样动态地将值返回到 false
jest.mock('../../../magic/index', () => ({
navigationEnabled: () => false,
guidanceEnabled: () => false
}));
因为我已经导入了一次 RowListItem
组件,所以我的模拟模块不会再次导入。所以它不会改变。我该怎么解决这个问题?