从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?

查看:9
本文介绍了从MaterialUIv4升级到MaterialUIv5后-缺少默认主题导致挂载测试失败。如何恢复默认主题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的mocha测试代码中,我有很多使用mount的测试。

enzyme.mount(<SomeComponentThatUsesMUI />);

这在Material-UIv4中运行得很好。但在v5中,由于缺少默认主题,SomeComponentThatUsesMui中试图访问主题的任何代码

现在我知道可以用ThemeProvider包装组件了:

 enzyme.mount(<ThemeProvider theme={} ><<SomeComponentThatUsesMUI /><ThemeProvider />);

然而,这意味着后续测试代码将需要调整,这是100多个测试。(我测试的5%)。

是否有办法恢复单元测试的默认主题?

推荐答案

虽然此答案需要修改每个MOUNT语句,但它不需要对测试代码进行任何后续更改。

提供wrappingComponentwrappingComponentProps要挂载的参数:

let wrapper = enzyme.mount(<SomeComponentThatUsesMUI />,
            {
                wrappingComponent: ThemeProvider,
                wrappingComponentProps: { theme: createTheme({}) }
            });

SomeComponentThatUsesMUI现在有了主题,但包装程序仍然引用SomeComponentThatUsesMUI而不是ThemeProvider。

这篇关于从MaterialUIv4升级到MaterialUIv5后-缺少默认主题导致挂载测试失败。如何恢复默认主题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆