How to test wrapped component with enzyme?
我的 React 组件被不同的 HOC(i18next、graphql 等)包裹着,不幸的是我无法用酶测试我的 WrappedComponents。
测试 WrappedComponents 的最佳实践是什么?
我不希望导出已package和未package的组件版本,我只想为我的应用程序逻辑导出已package的组件,并能够在package的组件中测试未package的组件。
感谢您阅读我!
我倾向于采用与 Redux 对
1 2 3 4 5 6 | const MyComponent = (props) => ( ... ); const ConnectedComponent = usingMyHoc(...)(MyComponent) ; ConnectedComponent.WrappedComponent = MyComponent; export default ConnectedComponent; |
我同意导出展开的组件感觉不自然——您想准确地测试组件在生产中的使用方式。
我的首选方法是创建一个package的渲染函数以用于测试:
1 2 3 4 5 6 7 8 9 10 | function renderWithProviders(componentTree, options = {}) { const {initialState} = options; const store = initializeStore(initialState); return { ...render( <Provider store={store}> <SnackbarProvider>{componentTree}</SnackbarProvider> </Provider> )}; } |