【发布时间】:2017-08-16 12:15:35
【问题描述】:
我将使用酶测试生命周期函数,包括 componentWillReceiveProps。
首先,我的组件应该被包装materialUi styles 并与redux 连接。 否则渲染功能会出现bug,因为我使用了包括FlatButton在内的material-ui组件。
const wrapper = mount(
<MuiThemeProvider muiTheme={muiTheme}>
<Provider store={store}>
<MemoryRouter>
<MyComponent />
</MemoryRouter>
</Provider>
</MuiThemeProvider>)
// absolutely fail
wrapper.find(MyComponent).setProps({ something })
expect(MyComponent.prototype.componentWillReceiveProps.calledOnce).toBe(true)
所以问题是我不能将 setProps() 用于 MyComponent,因为酶不允许应用非根组件。 我无法通过更改 props 来测试 componentWillReceiveProps 或其他必要部分。
如何设置/更改 MyComponent 的 props 以便测试 componentWillReceiveProps?
【问题讨论】:
标签: unit-testing reactjs material-ui jestjs enzyme