问题标签 [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 投票
1 回答
247 浏览

react-native - react-native-testing-library 与 native-testing-library 之间的区别?

我想测试我的 React Native 代码,但我在纠结应该使用哪个测试库。

根据我在互联网上阅读的内容,与组件的内部逻辑相比,专注于测试用户行为是一种更好的做法。这就是为什么我将jest库与test-renderer一起使用。

ReactNative 官方文档上有两个推荐的库,和我相当:react-native-testing-library@testing-library/react-native(也称为native-testing-library)。

他们之间有什么区别?

0 投票
1 回答
636 浏览

react-native - 检查第一个孩子是否在本机测试库中不呈现任何内容

假设我有以下组件:

在 React 测试库 (RTL) 中,以下 AFAIK 应该可以工作:

哪里.toBeEmpty是自定义匹配器jest-dom。但是,在 NTL 中,container.firstChild没有定义,所以我不能使用.toBeEmptymatcher from jest-native. 经过一些实验,我让它按如下方式工作:

有没有其他可能更好的方法来做到这一点?

0 投票
1 回答
2203 浏览

reactjs - 使用 Jest 进行测试时如何用模拟替换 React 组件

在我正在从事的项目中,我真的被困在这个问题上,我发现的所有答案似乎都很简单,但它们对我没有用。也许我真的不明白什么是模拟,我真的可以使用一些指导。

我正在测试一个父组件,它有一个使用 GraphQL 从数据库中获取一些数据的子组件。在测试父母时,我不在乎孩子在做什么。我想用一个模拟组件(一个不从数据库中获取数据的组件)替换子组件,以便我只能专注于父组件。

我想出了一个最简单的例子来说明我的情况。请注意,我使用的是 React Native 和 React Native 测试库。

./src/ParentComponent.js

./src/ChildComponent.js

./src/__mocks__/ChildComponent.js

./src/ParentComponent.test.js

当我运行测试时,我收到以下错误...

它仍在使用真实的<ChildComponent />. 为什么它不替换目录<ChildComponent />中的模拟版本__mocks__?这不是模拟的工作方式吗?如果有人可以请帮助和解释,将不胜感激。谢谢你。

0 投票
1 回答
680 浏览

react-native - TouchableOpacity 不显示 disabled 和 activeOpacity 道具

我正在尝试测试这个简单的按钮:

我使用这个测试文件,在这里我只是用一些道具渲染我的按钮:

问题是我返回了这棵树,它没有disabledactiveOpacity在其中

因此,我在上面的测试文件中的断言失败了。那我该如何测试道具TouchableOpacity呢?

在此先感谢您的时间!

0 投票
0 回答
156 浏览

react-native - 当可编辑为假时,onChangeText 被称为事件

这个问题fireEvent.changeText事件不应该在is时调用onChangeText函数,但是当我运行它时:editablefalse

我的测试失败了,因为handleChangeText被调用了。

我用:

  1. "@testing-library/react-native": "7.1.0"
  2. "react-native": "https://github.com/expo/react-native/archive/sdk-38.0.0.tar.gz"
0 投票
0 回答
250 浏览

react-native - 元素的测试焦点

如何检查该TextInput组件是否聚焦?我知道如何在网上做到这一点:

但是如何在 React Native 中做同样的事情呢?

0 投票
1 回答
256 浏览

jestjs - 如何测试 react-native 方法?

我想测试Vibration的模块react-native,问题是当我尝试测试它时出现错误:

使用此组件:

而这个测试文件:

我收到此错误:

我试着像这样嘲笑react-native

但随后我收到大量与不应再使用的旧模块相关的警告:

那么测试此类功能(如Vibration)的最佳方法是什么react-native

提前感谢您的时间!

0 投票
1 回答
1198 浏览

react-native-testing-library - 在 FlatList 中测试 onScroll 事件

我一直在尝试使用这个非常简单的测试文件来测试onScrolla 的事件:FlatList

测试文件:

正在测试的组件:

如您所见,我的方法中什至没有任何代码handleScroll,但我仍然收到此错误:

如何修复此错误并测试我的handleSCroll

在此先感谢您的时间!

0 投票
1 回答
391 浏览

react-native - 如何在反应原生中测试模态和门户内的 RN 组件渲染

我正在使用react-native-paper库作为我的 UI 组件库。我正在使用在 Portal 中呈现的 Modal 组件,如下所示

为了编写单元测试用例,我使用@testing-library/react-native

我的问题是如何测试模型内部渲染的组件。当我使用debug()时没有在其中获取 Modal 节点。

0 投票
0 回答
129 浏览

typescript - 在 react-native 测试中模拟硬件回压

以下帖子在一定程度上描述了我的问题 如何在 react-native 测试中模拟 android 后退按钮,但在我的情况下,我实际上并没有使用BackHandler,而是模态上的onRequestClose道具。

那么有什么方法可以实际触发模拟的后按,因为onRequestClose道具是从java 代码触发的?

破解解决方案: