问题标签 [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 回答
1178 浏览

reactjs - 使用 Formik 和 Yup 作为验证模式时,React Native 测试失败

我正在尝试为使用 Formik 构建的 React Native 组件编写一些测试。这是一个要求用户名和密码的简单表单,我想使用使用 Yup 构建的验证模式。

当我使用模拟器并手动测试表单时,表单的行为符合预期,仅当输入值无效时才会显示错误消息。

但是,当我尝试使用 编写一些自动化测试时@testing-library/react-native,行为并不是我所期望的。即使提供的值有效,错误消息也会显示在测试中。下面是代码:



我不确定我是否正确地编写了测试。我认为 Formik 会在handleSubmit调用函数时自动验证表单。

在 中App.js,如果我明确调用validateForm,测试将通过。onPress但是,仅仅为了满足测试而改变处理程序的实现是不正确的。也许我错过了围绕这个问题的一些基本概念。任何见解都会有所帮助,谢谢。


软件包版本:

0 投票
1 回答
256 浏览

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

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

使用此组件:

而这个测试文件:

我收到此错误:

我试着像这样嘲笑react-native

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

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

提前感谢您的时间!

0 投票
1 回答
2884 浏览

react-native - react-query 如何在 Jest 测试中从自定义 useMutation 挂钩调用 mutate

我正在运行一个 React Native 项目,我正在测试用 react-query 编写的自定义钩子。我正在使用 Jest、@testing-library/react-hooks 和 @testing-library/react-native。在我的测试中,我似乎找不到调用钩子返回的 mutate 函数的方法。

下面看一下自定义钩子:

根据 react-query 的文档,我正在使用 renderHook() 渲染钩子并等待突变调用的结果:

它不调用 API。我的本地服务器的终端窗口记录了我在使用时正在 ping 服务器,sanityCall()但在我注释掉该调用并依赖钩子时保持沉默。有没有人对如何测试这样的自定义钩子有任何想法?

0 投票
1 回答
718 浏览

javascript - React Native:如何测试元素是否聚焦?

简单的测试用例:想看看给定的元素是否被聚焦。

要检查一个元素是否专注于带有 RTL 和 jest 的 React Web 应用程序,您可以使用两个简单的选项:

  1. 您可以检查元素是否与 document.activeElement 相同(可能必须丢弃一些包装器)
  2. 您可以使用https://github.com/testing-library/jest-dom#tohavefocus扩展您的笑话匹配器并使用expect(<element>).toHaveFocus()

我不确定 react native 的等效检查是什么(与 jest-dom 扩展等效的 RN 是https://github.com/testing-library/jest-native并且明显缺少toHaveFocus匹配器)。

0 投票
1 回答
1198 浏览

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

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

测试文件:

正在测试的组件:

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

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

在此先感谢您的时间!

0 投票
0 回答
61 浏览

react-native - React-Native-Testing-Library '警告 - 更新未包含在 act(...) 中

我认为已经提出了这个问题,但没有提供解决方案。

我正在使用 RNTL 尝试对一个简单的 RN 组件进行单元测试。

我的例子如下:

我已经尝试了许多不同的等待使用它,但await waitFor()我一直收到相同的错误(见下文)

我也尝试了这里提到的所有东西:https ://github.com/callstack/react-native-testing-library/issues/379#issuecomment-714341282 ,包括用findBygetBy走运替换。

欢迎任何想法!

谢谢

0 投票
1 回答
250 浏览

reactjs - 开玩笑 - 找不到模块 ./fonts/galio.ttf 映射为

我是反应原生测试的新手,最近我遇到了这个错误。我仍然无法找到解决此问题的正确解决方案。请问有人可以帮忙吗?

提前致谢。

0 投票
2 回答
758 浏览

typescript - 带有测试 react-native-testing-library 和 jest-native 的世博会应用程序“没有导出成员 'toHaveProp”

我正在尝试使用 jest-native 作为额外的匹配器,我认为我遇到了安装问题......
我在一个带有 expo 的 react-native ts 应用程序上,这是我的版本:

  • 世博会:“~39.0.0”
  • @testing-library/react-native 版本:“^7.1.0”
  • jest-preset : 'jest-expo',
  • 反应原生版本:“63.4”

我想以这种方式使用它:

但它给了我这个错误:

任何的想法 ?

0 投票
1 回答
403 浏览

react-native - Expo 安全存储在开玩笑测试中不可用

这个问题专门关于expo-secure-storejest

目前,我在登录时使用 expo-secure-store 来存储我的 JWT。它在模拟器上运行时运行良好,但是在 Jest 测试中根本不起作用;令牌返回为undefined. 我可以像平常一样调用函数。

请原谅我可能在重构时出现的任何拼写错误。从测试调用:

问题:如果没有实际的设备/模拟器,expo-secure-store 是否无法加载/工作?

根本没有关于使用安全存储进行测试的文档,据我所知,我可能不得不模拟这个模块。

0 投票
1 回答
10362 浏览

react-native - 使用 Jest 和 @testing-library/react-native 测试 React Native 项目时出现“SyntaxError: Cannot use import statement outside a module”错误?

每次运行时都会遇到错误npm test

● 测试套件无法运行

我的测试:

我的 test-utils.js 文件:

我的 package.json 文件:

我的 babel.config.js 文件:

我尝试过:将“type”:“module”添加到我的根级别 package.json 文件中,这修复了导出时出现的类似错误,将 Transform Ignore Patterns 添加到 package.json 文件中的 Jest 键。我将所有依赖项都添加到了 transformIgnorePatterns 中,因为它不断地在每个依赖项上抛出错误,直到我添加了所有依赖项,现在它抛出了 react-native 模块导入。