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

react-native - React-Testing-Library/Jest-Dom - 接收到的值必须是 HTMLElement 或 SVGElement

我是单元测试的新手,我正在尝试渲染一个组件以了解有关该库的更多信息。

我正在尝试遵循指南。

零件

测试

我只是想查看组件是否正确呈现,但出现错误

关于我做错了什么有什么建议吗?

0 投票
2 回答
551 浏览

javascript - 如何使用 react-native-testing-library 模拟 useEffect 异步调用?

我正在尝试使用以下内容测试具有 useEffect 挂钩的屏幕:

我正在尝试以下测试:

但是这个容器永远找不到,因为setIsSensorIsAvailable永远不会将值设置为true,因为以下错误:

An update to SomeScreen inside a test was not wrapped in act(...).

我什至像这样尝试了一切:

但是当我运行这个测试时,它永远不会结束。也尝试将其包装起来,act(...)但这也不起作用,然后错误如下: Can't access .root on unmounted test renderer

任何帮助表示赞赏,谢谢!

0 投票
0 回答
191 浏览

react-native - 如何模拟 react-native-copilot?

试图开玩笑react-native-copilot

这是屏幕中导入模块的点。

到目前为止,这是在测试中模拟它的方式:

这是测试:

这是错误:

任何想法?

0 投票
0 回答
51 浏览

react-native - Redux 表单提交测试使用 react-native-testing libaray 和 redux-mock-store

有人可以帮助使用反应原生测试来测试 redux 表单提交吗?我正在使用 redux-mock-store 来模拟商店,并且我能够触发事件更改事件。但是我尝试了不同的方法,但不确定如何使用正在传递的值和随后的调度操作调用来测试表单提交。请告知,因为我对这个回声系统比较陌生。

任何人都可以帮助我,因为我对此感到震惊。

这是组件

组件的容器

容器测试

测试工具/渲染

布拉德

0 投票
1 回答
154 浏览

react-native - react-native-testing-library 使用 react-intl FromattedMessage 时如何获取文本?

react-native-testing-library 的 getByText 方法似乎在 react-intl 中找不到文本<FormatedMessage />

在这种情况下,getByText 返回 null。

0 投票
2 回答
144 浏览

react-native - 如何在 react-native testing-library 中使用 styled-components 主题

我有一个简单的组件:

我正在尝试测试一个简单的功能,但我收到了来自 styled-components 主题的错误。

这是我的测试:

这是我得到的错误:

有什么我想念的吗?我认为将组件包装在 ThemeProvider 中可以解决问题,但仍然会出现错误。

仅供参考,这是引发错误的样式组件

0 投票
0 回答
201 浏览

react-native - 为什么@testing-library/react-native 渲染不尊重 !== undefined/ !==null if 子句?

我正在使用@testing-library/react-native 编写测试来呈现我的组件并在用户按下平面列表元素时测试 onPress 事件。我有一个包含几个元素的列表,但是,在其执行过程中,它的值更改为 undefined (我也不明白)。因此,当列表未定义时,它会尝试呈现未定义列表的元素。但是渲染应该只发生在if(myList !== undefined && myList !== null)它仍然执行这个子句中的代码时。这是预期的行为吗?我怎样才能阻止它执行它?我还测试了 if 子句if(myList)并具有相同的结果。

我的组件.js

myComponent-test.js

在我的控制台上,我得到:

最后我得到一个错误:

0 投票
0 回答
195 浏览

react-native - 使用 @react-native-community/netinfo 无法达到 100% 的测试覆盖率

我正在尝试为以下代码编写单元测试用例。但是,我无法实现 100% 的测试覆盖率。

我正在使用@react-native-community/netinfo包来获取网络连接信息和@testing-library/react-native编写单元测试用例。

应用测试.js

0 投票
0 回答
194 浏览

react-native - React Native @5Navigation 反应测试库

我是 React Native 测试库的新手。对于我的 React 本机应用程序,我使用样式化组件和 Typescript。我获取数据并传递给我的 flatList。在 Flat-list 的渲染项中,我创建了一个全局组件,其中显示了所有数据,这些数据用一个可触摸的容器包装。当用户单击该可触摸的不透明度时,它将转到单个产品详细信息屏幕。

为了测试组件,我创建了一个模拟容器。我包装了我的可触摸不透明度组件。我按照这篇文章创建了模拟导航器。我想测试可触摸的不透明度组件并导航到下一个屏幕。但我收到错误,它说:

带有有效负载 {"name":"ProductDetails","params":{"product":{"__typename":"Product","id":"6414893391048","ean":"6414893391048", "name":"T shirt","brandName":"Denim","price":13.79 }} 未被任何导航器处理。

这是我的组件

这是我的模拟容器

这是我的模拟屏幕

这是我的测试套件,我的测试失败了

0 投票
0 回答
76 浏览

react-native - React Native 测试库通过访问角色获取

我真的是新的React Native 测试库。我的应用程序基本上是这样工作的:它获取数据并以我的 asText格式显示,我使用jsonplace holder api。这是应用程序演示。我创建了一个 Text 在其中定义 test role="header"。我想测试文本,它在role="header". 我制作了一个假数据并尝试对其进行测试。我可以从组件中定位角色,但我不知道如何获取预期的数据。我试过了toBegetByText但每次我得到错误:TypeError: toBe is not function

这是我的应用组件

这是我的测试套件