【发布时间】:2021-08-13 22:17:19
【问题描述】:
为了渲染连接到redux store的容器组件,我使用这个函数来渲染组件
function render(Component, props, storeData) {
const mockStore = configureStore([thunkMiddleware]);
const store = mockStore(storeData);
return mount(
<Provider store={store}>
<Component {...props} />
</Provider>
);
}
现在,我需要测试渲染组件的道具更改,但看起来ReactWrapper.setProps 仅适用于根组件。MyComponent 是一个容器组件,它使用connect 连接到存储。
describe('MyComponent', () => {
it('should work at props change', () => {
const wrapper = render(MyComponent, { value: 1 }, initialStoreValue);
wrapper.find(MyComponent).setProps({ value: 2});
// then expect something.
});
});
【问题讨论】:
-
当我使用一个使用 Radium 的组件时会发生类似的问题。我必须用
<StyleRoot>包装组件来安装该组件,因此,我无法更新道具。
标签: reactjs unit-testing redux jestjs enzyme