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

如何解决如何在 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?