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

typescript - 在使用 React Native 测试和 TypeScript 时传递道具

嘿,我正在尝试为也使用 TypeScript 的项目实现 react-native-testing-library。我的问题涉及将道具传递给我的测试的最佳方式。

例如,如果我的 src/example.tsx 是:

而我的 src/ test / example.test.tsx 是:

我显然得到了错误:

做这个的最好方式是什么。我是否需要手动创建一个模拟道具对象来输入我的每个组件,还是有更好的方法来做到这一点?

0 投票
0 回答
118 浏览

reactjs - 测试库/Jest native - 断言父元素的样式 - 有更好的方法吗?

我有这个结构

在此处输入图像描述

我可以通过这样做找到我的图标并验证不透明度:

我到处寻找,找不到更好的方法来代替: rightIcon.parent?.parent?.parent?.parent

有谁知道如何以更优雅的方式到达父元素?

对不起我的英语,不是母语...

0 投票
0 回答
24 浏览

reactjs - 使用 React Native 测试库对插件组件进行单元测试

我目前有一个使用外部库中的组件的组件:

我正在使用 React 测试库为此组件编写一些单元测试。我的问题是,我的ModalSelector组件有我想要执行的 onChange 道具以确保我的onChangeHandler道具被触发?这是我目前在创建模拟函数的测试中所拥有的:

我知道我可以使用该fireEvent功能,但我将如何在外部ModelSelector组件上执行此操作?我在使用插件中的外部组件的多个组件中遇到了这个问题。当涉及到对我的组件进行单元测试时,这可能不是最佳实践,因此任何建议都非常受欢迎。

0 投票
0 回答
42 浏览

react-native - 测试库 React-Native - 我尝试调试时不会发生内存泄漏

因此,我正在尝试为使用 react-navigation 和 relay modern 的 React-Native 组件编写测试。我收到此警告:

当我评论它时,我在测试中找到了确切的行,警告消失了:

问题是当我添加--runInBand --detectOpenHandles到我的测试命令时,警告不再发生。非常感谢任何建议。

0 投票
2 回答
204 浏览

react-native - React-Navigation V6 Drawer.Item drawerItemStyle: { display: "none" } 仍然在 react-test-renderer 中渲染 DrawerItem

我正在尝试编写一个测试,其中抽屉项目从不可见变为可见。我实现可见性开关的方式是drawerItemStyle将抽屉项目上的道具从切换display: "none"display: "flex"。这适用于android模拟器。但是,当我使用 react native 测试库渲染 Drawer 导航器时,即使 DrawerItemStyle 属性设置为, DrawerItem 也存在display: "none"

有了这个:

该测试通过:

  1. 是否期望设置显示“无”仍会在 react-test-renderer 中呈现它?
  2. 有没有更好的方法来切换可见性?
  3. 有没有更好的方法来测试能见度?

更新:找到解决方案

我不得不这样做:

0 投票
1 回答
270 浏览

react-native - 是否真的有必要检查 getBy 或 findBy 方法是否返回真实值?

我在使用测试库的前端项目方面有一些经验,但我绝对不是专家。在大多数项目的代码审查过程中,发现一些具有这种结构的测试套件真的很常见:

我的疑问是,如果我们最终不会用这种方法检查DOM上是否存在元素是多余的......

根据文档,如果我们使用getByor findBy,它应该在没有匹配项时抛出错误。所以我假设没有办法 agetBy返回一个虚假的值,或者 afindBy解决一个虚假的值。如果它是真的,那么也许我们不需要再次检查它。是否有意义?

所以我想知道如果我们这样做是否真的很糟糕:

Idk 如果有意义,但 afaik 检查这些调用是否没有引发错误应该足以验证 DOM 上是否存在元素,对吗?

0 投票
0 回答
57 浏览

typescript - 使用 Jest 和 reactnative-testing-library 在 ReactNative 中测试渲染:您正在尝试在 Jest 环境被拆除后“导入”一个文件

当我尝试使用 EXPO 在我的 ReactNative 应用程序中测试渲染方法时遇到问题,我正在使用 JEST 和 reactnative-testing-library。这是我的代码:

在写这个问题之前,我看了这个链接 Reference error: `import` a file after the Jest environment has been torn down and also tried workaround

但没有任何效果。正如评论中所建议的,我附上了 LoginScreen 代码的组件

0 投票
0 回答
24 浏览

react-native - What's the correct way to transpile react-native to use with nodejs?

i am trying to run node on files that import React Native components.

More specifically, i am trying to run my testing framework riteway with react-native.

The Problem

When transpiling react-native modules there are issues related to the react-native environment (missing variables, wrong imports, etc)

you can find some sample code in this project.

So i am wondering, is there a way to transpile react-native so that it can be used in other nodejs apps?

the command i launch

babel-register-start.js

0 投票
0 回答
25 浏览

react-native - 开玩笑,react-testing-library 和 React Native:无法在未安装的组件上找到节点

如果只有一个次要版本或补丁版本关闭,则会发生灾难性故障,因为我已经阅读过软件包版本:

我的测试如下所示:

第一个测试通过,第二个从来没有通过,我总是得到:

我真的不明白这个错误。我实际上是rerender在上面抛出错误的那一行调用 - 开玩笑(或者可能是反应)如何说组件已卸载?

我的意思是……这些东西是基本的。我想点击一个按钮并希望被导航到一个新屏幕。为什么这么难?

叹息......只是在 React 玩笑测试天堂的另一天。

另一个注意事项:当我们连接到 Gherkin 功能规范时,given when then语法来自jest-cucumber库 - 但我几乎不认为这是导致问题的原因。我 99% 确定这个错误存在react-testing-libraryreact-native.

0 投票
0 回答
25 浏览

javascript - 如何在测试库中测试 react native 的警报?

我想检查警报中的文本,也许从中获取一个按钮

});

我有一个控制器(功能)和屏幕(视图)结构,如果您可以帮助提供文本中的示例测试代码以发出警报或按钮,我很感激。

我想测试打开警报时屏幕上显示的消息,例如:“取消”

我找到了解决我的问题的方法, 您需要导入警报,您可以测试呼叫、警报中的文本以及 onpress 功能

从'react-native'导入{警报};

jest.spyOn(警报,“警报”);

期望(Alert.alert).toHaveBeenCalled(); //检查调用

常量 alertContent = Alert.alert.mock.calls[0]; //您可以检查文本并按 onpress 制作控制台日志(alertContent)