我要測試生命週期的功能,包括使用酶的componentWillReceiveProps。反應測試componentWillReceiveProps使用酶
在此之前,我的組件應該包裝materialUi styles並與redux連接。 否則,渲染函數中會出現錯誤,因爲我使用了包含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,因爲酶不允許應用非根組件。 我無法通過更換道具來測試componentWillReceiveProps或其他必要部件。
如何設置/更改MyComponent的道具,以便我可以測試componentWillReceiveProps?
與出口組件的例子如果是這樣,測試時出現在渲染函數中的錯誤,因爲我渲染了material-ui按鈕 – Oscar
然後,您應該嘲笑material-ui按鈕,因爲這超出了單元測試的範圍。 – brickingup