Tôi sẽ kiểm tra các chức năng vòng đời bao gồm componentWillReceiveProps sử dụng enzyme.React componentWillReceiveProps sử dụng enzyme
Trước bất cứ điều gì khác, thành phần của tôi phải được bao bọc materialUi styles và được kết nối với Redux. Nếu không, sẽ có lỗi trong hàm render vì tôi sử dụng các thành phần material-ui bao gồm FlatButton.
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)
Vì vậy, vấn đề là tôi không thể sử dụng setProps() cho MyComponent vì enzyme không cho phép áp dụng thành phần không phải gốc. Tôi không thể kiểm tra componentWillReceiveProps hoặc các phần cần thiết khác bằng cách thay đổi đạo cụ.
Làm cách nào để tôi có thể đặt/thay đổi đạo cụ của MyComponent để tôi có thể kiểm tra componentWillReceiveProps?
Nếu vậy, các lỗi xuất hiện trong hàm render trong khi thử nghiệm vì tôi đã hiển thị các nút material-ui – Oscar
Sau đó, bạn nên thử các nút material-ui vì nó nằm ngoài phạm vi kiểm tra đơn vị. – brickingup