如何在 React Native 中为包含 ThemeProvider 的组件编写测试作为其子组件的包装器

问题描述

以下是由react-native-elements提供的ThemeProvider包裹的基本功能组件

const Page = ({route,navigation}: Props) => {

    // some states and functions
    return(
       <View>
           <ThemeProvider
             theme={
              //some code here
              }>
                <View>
                    //some component here
                </View>
           </ThemeProvider>
       </View>
    )
}

我正在尝试为 Page 组件编写一个快照测试,如下所示:

const tree = renderer.create(<Page/>);
expect(tree.toJSON()).toMatchSnapshot();

但我收到以下错误

控制台错误 node_modules/react-test-renderer/cjs/react-test-renderer.development.js:10695 组件中出现上述错误: 在页面

我尝试通过如下方式包装 Page 本身来测试组件:

const tree = renderer.create(
    <ThemeProvider
       <Page/>
    </ThemeProvider>);
expect(tree.toJSON()).toMatchSnapshot();

但这并没有解决问题。我无法找到一种方法来模拟本身包含 ThemeProvider 的组件。如果我从组件中删除 ThemeProvider,测试会像魅力一样通过。

任何帮助将不胜感激。 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)