从MaterialUIv4升级到MaterialUIv5后-缺少默认主题导致挂载测试失败。如何恢复默认主题? [英] After upgrading from MaterialUI v4 to MaterialUI v5 - lack of default theme causing mount tests to fail. How to reinstate a default theme?
本文介绍了从MaterialUIv4升级到MaterialUIv5后-缺少默认主题导致挂载测试失败。如何恢复默认主题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的mocha测试代码中,我有很多使用mount的测试。
enzyme.mount(<SomeComponentThatUsesMUI />);
这在Material-UIv4中运行得很好。但在v5中,由于缺少默认主题,SomeComponentThatUsesMui
中试图访问主题的任何代码
现在我知道可以用ThemeProvider包装组件了:
enzyme.mount(<ThemeProvider theme={} ><<SomeComponentThatUsesMUI /><ThemeProvider />);
然而,这意味着后续测试代码将需要调整,这是100多个测试。(我测试的5%)。
是否有办法恢复单元测试的默认主题?
推荐答案
虽然此答案需要修改每个MOUNT语句,但它不需要对测试代码进行任何后续更改。
提供wrappingComponent
和wrappingComponentProps
要挂载的参数:
let wrapper = enzyme.mount(<SomeComponentThatUsesMUI />,
{
wrappingComponent: ThemeProvider,
wrappingComponentProps: { theme: createTheme({}) }
});
SomeComponentThatUsesMUI
现在有了主题,但包装程序仍然引用SomeComponentThatUsesMUI
而不是ThemeProvider。
这篇关于从MaterialUIv4升级到MaterialUIv5后-缺少默认主题导致挂载测试失败。如何恢复默认主题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文