问题标签 [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.
reactjs - 使用 Formik 和 Yup 作为验证模式时,React Native 测试失败
我正在尝试为使用 Formik 构建的 React Native 组件编写一些测试。这是一个要求用户名和密码的简单表单,我想使用使用 Yup 构建的验证模式。
当我使用模拟器并手动测试表单时,表单的行为符合预期,仅当输入值无效时才会显示错误消息。
但是,当我尝试使用 编写一些自动化测试时@testing-library/react-native
,行为并不是我所期望的。即使提供的值有效,错误消息也会显示在测试中。下面是代码:
我不确定我是否正确地编写了测试。我认为 Formik 会在handleSubmit
调用函数时自动验证表单。
在 中App.js
,如果我明确调用validateForm
,测试将通过。onPress
但是,仅仅为了满足测试而改变处理程序的实现是不正确的。也许我错过了围绕这个问题的一些基本概念。任何见解都会有所帮助,谢谢。
软件包版本:
jestjs - 如何测试 react-native 方法?
我想测试Vibration
的模块react-native
,问题是当我尝试测试它时出现错误:
使用此组件:
而这个测试文件:
我收到此错误:
我试着像这样嘲笑react-native
:
但随后我收到大量与不应再使用的旧模块相关的警告:
那么测试此类功能(如Vibration
)的最佳方法是什么react-native
?
提前感谢您的时间!
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()
但在我注释掉该调用并依赖钩子时保持沉默。有没有人对如何测试这样的自定义钩子有任何想法?
javascript - React Native:如何测试元素是否聚焦?
简单的测试用例:想看看给定的元素是否被聚焦。
要检查一个元素是否专注于带有 RTL 和 jest 的 React Web 应用程序,您可以使用两个简单的选项:
- 您可以检查元素是否与 document.activeElement 相同(可能必须丢弃一些包装器)
- 您可以使用https://github.com/testing-library/jest-dom#tohavefocus扩展您的笑话匹配器并使用
expect(<element>).toHaveFocus()
我不确定 react native 的等效检查是什么(与 jest-dom 扩展等效的 RN 是https://github.com/testing-library/jest-native并且明显缺少toHaveFocus
匹配器)。
react-native-testing-library - 在 FlatList 中测试 onScroll 事件
我一直在尝试使用这个非常简单的测试文件来测试onScroll
a 的事件:FlatList
测试文件:
正在测试的组件:
如您所见,我的方法中什至没有任何代码handleScroll
,但我仍然收到此错误:
如何修复此错误并测试我的handleSCroll
?
在此先感谢您的时间!
react-native - React-Native-Testing-Library '警告 - 更新未包含在 act(...) 中
我认为已经提出了这个问题,但没有提供解决方案。
我正在使用 RNTL 尝试对一个简单的 RN 组件进行单元测试。
我的例子如下:
我已经尝试了许多不同的等待使用它,但await waitFor()
我一直收到相同的错误(见下文)
我也尝试了这里提到的所有东西:https ://github.com/callstack/react-native-testing-library/issues/379#issuecomment-714341282 ,包括用findBy
不getBy
走运替换。
欢迎任何想法!
谢谢
reactjs - 开玩笑 - 找不到模块 ./fonts/galio.ttf 映射为
我是反应原生测试的新手,最近我遇到了这个错误。我仍然无法找到解决此问题的正确解决方案。请问有人可以帮忙吗?
提前致谢。
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”
我想以这种方式使用它:
但它给了我这个错误:
任何的想法 ?
react-native - Expo 安全存储在开玩笑测试中不可用
这个问题专门关于expo-secure-store
和jest
。
目前,我在登录时使用 expo-secure-store 来存储我的 JWT。它在模拟器上运行时运行良好,但是在 Jest 测试中根本不起作用;令牌返回为undefined
. 我可以像平常一样调用函数。
请原谅我可能在重构时出现的任何拼写错误。从测试调用:
问题:如果没有实际的设备/模拟器,expo-secure-store 是否无法加载/工作?
根本没有关于使用安全存储进行测试的文档,据我所知,我可能不得不模拟这个模块。
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 模块导入。