【发布时间】:2018-01-27 05:47:54
【问题描述】:
我的组件测试文件中有一个这样的模拟模块
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 组件,所以我的模拟模块不会再次重新导入。所以它不会改变。我该如何解决这个问题?
【问题讨论】:
标签: reactjs react-native jestjs enzyme