问题标签 [react-native-testing-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
287 浏览

react-native - SegmentedControlIOS 上的 fireEvent

我正在使用 react-native-testing-library - https://callstack.github.io/react-native-testing-library/docs/getting-started

我有一个<SegmentedControlIOS>- https://facebook.github.io/react-native/docs/segmentedcontrolios

我要讲第一段。我正在这样做:

但是我得到了错误:

截图如下。有人知道如何按不同的段<SegmentedControlIOS>吗?

在此处输入图像描述

0 投票
1 回答
1610 浏览

react-native - 使用 react-native-testing-library 测试警报

可以react-native-testing-library找到使用 ? 创建的警报Alert.alert()

我的应用程序按预期创建警报,但此测试失败:

异步版本(waitForElement,评论)也失败了。

同样,警报在应用程序本身中起作用,并且由处理程序调用的调度操作通过的断言。

0 投票
1 回答
598 浏览

unit-testing - React Native:在开玩笑的单元测试中更新上下文 api 值

我正在编写单元测试,以验证带有少量文本输入和自定义下拉字段的反应原生表单。我正在jest使用react-native-testing-library. 该表格在提交 btn press 时得到验证。表单值被保存到上下文并从上下文中访问(使用 useReducer() 钩子)。

我无法模拟该Dropdown字段的输入值,因此要跳过它,我想通过向上下文发送一个随机有效值来设置该字段的上下文值,用 in 包裹act(),这样验证就不会停在那里并且继续验证下TextInput

但是,当我记录上下文值时,它仍然像以前一样保持不变,并且验证会因之前的字段而停止。

ContextProvider.js

FormComponent.js

FormComponent.test.js

所以,我的问题是,为什么上下文不更新?这是更新上下文的错误方法吗?

注意:我不是在嘲笑上下文,而是更喜欢这种方式来使用实际上下文。

0 投票
1 回答
124 浏览

react-native - 用多个状态渲染反应原生测试快照?

componentDidMount我有一个组件在其方法中多次设置状态。例如:

使用类似于以下的渲染方法:

我可以运行测试react-native-testing-library

然而我只得到等待视图。但是,当我逐步完成测试时,其他渲染被击中。

所以看起来快照测试只是捕获第一个渲染。有没有办法让它给我最终的渲染?

0 投票
1 回答
75 浏览

react-native-testing-library - 如何获取渲染组件的道具

想象一下,我有一个反应原生组件:

我想运行一个测试来引用 HelloWorld 组件本身并检查一个道具。如何访问 HelloWorld 本身并检索其道具?

我没有找到其他类似库中使用的 baseElement 之类的选项

0 投票
5 回答
7156 浏览

react-native - react-native-testing-library:如何使用 act 测试 useEffect

react-native-testing-library用来测试我的 react-native 组件。我有一个组件(为了这篇文章的目的,它已经被过度简化了):

这是我的(简化)component.spec.tsx

现在,当我运行此代码时,出现此错误: Can't access .root on unmounted test renderer

在此处输入图像描述

我什至现在都不知道这个错误消息是什么意思。我按照react-native-testing-library如何使用act and useEffect.

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

0 投票
1 回答
214 浏览

reactjs - 使用 react-native-testing-library 测试 StyleSheet

在我们的 react-native 应用程序中,我们正在为我们的组件开发自定义样式组件。

样式组件包含 StyleSheet 示例:

由于此组件是在我们的组件中导入的,并且当我们对组件进行单元测试时,它会在其中运行 30 次,并显示 if 和 else 部分没有运行,这导致覆盖率降低(样式组件在组件中导入)

所以我附上了一个 解释这个问题的截图。请注意,其余整个组件都经过测试并完全覆盖。所以剩下的覆盖范围是样式组件。

0 投票
1 回答
892 浏览

react-native - 如何在 React Native 测试库中获取 React 测试渲染器实例

我有一个由导航库添加的具有生命周期方法的组件 - React Native Navigation ( https://wix.github.io/react-native-navigation/#/docs/Usage?id=screen-lifecycle )。

我必须在测试中调用此生命周期方法 (componentDidAppear),以便我的组件正确呈现。

当我使用 React Test Renderer 时,我能够在组件实例上调用此方法。如何使用 React Native 测试库调用它?如何在 RN Testing-Library 中获取测试渲染器实例?

0 投票
1 回答
1649 浏览

reactjs - 使用 Jest 和 React Native 测试库对 DateTimePickerModal 进行问题测试

我正在尝试使用 Jest 和React Native Testing Library为React Native Modal DateTime Picker编写单元测试。我已经通过了 3 个(我相信是)标准 RN 道具:

这是我的测试:

dobField是我创建的自定义输入字段,当它被“按下”时,我可以找到testID我添加的模式。但是,将事件触发到的第 3 个条件onConfirm,我收到此错误:

我已经阅读了关于“直接操作”的 RN 文档(链接),其中讨论了设置/使用native props. 但是,这似乎应该在 modal/lib 本身上实现,而不是从我这边?

所以我的问题是:

  1. 有没有人有为此第三方组件编写测试的经验?
  2. 有没有人可以分享更多关于 TypeError 含义的信息?
  3. 有没有更好的方法来为此模式编写单元测试?
  4. 我是否缺少能够通过 Jest 与组件正确交互的道具/部件?
0 投票
0 回答
472 浏览

react-native - 由于 react-native-reanimated 模拟,使用 material-top-tabs 后拍摄快照时出错

当前行为

  • 使用@react-navigation/material-top-tabs 后,我的快照失败,出现以下错误

预期行为

  • 快照被保存

如何重现

Messages-test.js

mockedProvider.js

Messages.js

topTabNavigator.js

jestSetupFile.js

你的环境

| 软件 | 版本 |

| ---------------------------------- | -------- |

| @react-navigation/本机 | 5.0.5 |

| @react-navigation/material-top-tabs | 5.0.7 |

| 反应原生选项卡视图 | 2.13.0 |

| 反应原生 | 0.61.5 |

| 节点 | 12.16.0 |

| 纱线 | 1.22.0 |