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

react-native - 如何测试 React Native “Pressable” onPress 函数

这是我的反应原生代码

我想用反应原生测试库编写单元测试用例来测试 onPress 功能。有人可以帮助我吗?

0 投票
1 回答
646 浏览

react-native - 使用 React Native 测试库和 Jest 测试 setTimeout

我有一个带有以下Player组件的 React Native 应用程序,它无限地调用一个play()带有setTimeout. 我react-native-testing-libraryjest.

我正在尝试测试此setTimeout功能。具体来说,我想监视该函数,以便我可以期望在setTimeout给定的秒数后被调用任意次数。例如,3 秒后,该函数应该被调用了 3 次。但是,我在测试这个时遇到了问题。我当前的测试如下所示:

当我添加jest.useFakeTimers()andjest.runOnlyPendingTimers()时,waitFor函数出错并出现timeout错误。如何监视 setTimeout?这是我的组件的总体思路:

0 投票
0 回答
21 浏览

react-native - 如何在 App 组件的 useEffect 中测试逻辑

我想为 App 组件编写一个测试,以检查是否按顺序调用了预期的服务操作。与其他组件不同,我被困在如何访问应用程序本身,因为它抛出“元素类型无效

应用程序.ts

如何更新以下测试功能以监视服务操作并验证它们是否按预期顺序调用?

0 投票
0 回答
502 浏览

react-native - 反应本机测试库,未找到带有 testID 的实例

我得到错误,

未找到具有 testID 的实例:CreateAccount.errorMessage

但我在“CreateAccount.js”上引用了 ID

然后在“CreateAccount.test.js”

我的组件缺少什么以使 testID 正常工作?

提前致谢

0 投票
0 回答
407 浏览

react-native - 如何使用 @testing-library/react-native 和 jest 测试 react-native-qrcode-scanner

我在我的应用程序中使用了这个二维码扫描仪,但是在二维码扫描仪上进行单元测试时遇到了麻烦。如何在这个 qr 扫描仪上进行单元测试?我应该嘲笑它还是有办法将值发送到 onRead 道具?

之前,我曾尝试使用此代码模拟 react-native-qrcode-scanner

但给出错误“TypeError:scanner.current.reactivate is not a function”

这是我的代码:ScanQRCodeScreen.js

扫描QRCodeScreen-test.js

0 投票
1 回答
507 浏览

react-native - 找不到事件的处理函数:“changeText”

我第一次尝试使用 Expo / Jest 的 React Native 测试库。

按照教程,我可以得到一个简单的按钮来工作

具有正确的预期输出 ✓ Simple Button (315ms)

但是,尝试对输入进行相同操作会产生错误

我对此感到非常困惑,已经检查了入门指南和其他存储库中的多个示例,但是代码看起来正确且非常简单。

相关部分来自package.json

0 投票
1 回答
423 浏览

javascript - 如何修复 TypeError:navigation.setOptions 不是函数

我正在尝试用我的应用程序开玩笑地实现本机测试库。

现在我的组件导航有问题。

当我运行测试时,我遇到了一个错误:

这是我的组件:

这是一个路由器:

还有一个测试本身:

我该如何解决这个错误?我应该将什么传递给导航道具:

0 投票
0 回答
110 浏览

react-native - 开玩笑无法编译流程(react-native)

无法在我的 react-native 项目上运行。

尝试在 react-native 项目上设置 jest 时,出现以下错误:

看来我的笑话运行 react-native's jest/setup.js。并且由于“类型”(流关键字)而无法编译它的依赖关系。

我将 jest-expo(版本 42.0.1)与 babel-jest 一起使用,并按此处 babel-plugin-transform-flow-strip-types所述添加。

我尝试了很多解决方案。一种是自己编译这些流文件,并使用 jestmoduleNameMapper将它们替换为 react-native 的。但这引起了更多问题...

我开玩笑的配置package.json

}

我的babel.config.js

我会非常感谢你的帮助。

0 投票
0 回答
30 浏览

react-native - 在状态变化中反应原生测试

如何使用测试库为 Button 组件禁用 prop 包含状态值编写测试用例?例如。

在这段代码中,如何根据状态变量检查按钮是否被禁用?

如何编写适合自动化测试的 React 本机应用程序?

0 投票
0 回答
72 浏览

react-native - _reactNative.UIManager.setLayoutAnimationEnabledExperimental 不是函数

我正在尝试测试具有此函数调用的 react-native 组件。

使用 @testing-library/react-native 渲染此组件时出现此错误。

我尝试使用 jest spyOn 模拟该函数

仍然得到同样的错误,无论如何我可以模拟这个功能?