问题标签 [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.
typescript - 在使用 React Native 测试和 TypeScript 时传递道具
嘿,我正在尝试为也使用 TypeScript 的项目实现 react-native-testing-library。我的问题涉及将道具传递给我的测试的最佳方式。
例如,如果我的 src/example.tsx 是:
而我的 src/ test / example.test.tsx 是:
我显然得到了错误:
做这个的最好方式是什么。我是否需要手动创建一个模拟道具对象来输入我的每个组件,还是有更好的方法来做到这一点?
reactjs - 使用 React Native 测试库对插件组件进行单元测试
我目前有一个使用外部库中的组件的组件:
我正在使用 React 测试库为此组件编写一些单元测试。我的问题是,我的ModalSelector
组件有我想要执行的 onChange 道具以确保我的onChangeHandler
道具被触发?这是我目前在创建模拟函数的测试中所拥有的:
我知道我可以使用该fireEvent
功能,但我将如何在外部ModelSelector
组件上执行此操作?我在使用插件中的外部组件的多个组件中遇到了这个问题。当涉及到对我的组件进行单元测试时,这可能不是最佳实践,因此任何建议都非常受欢迎。
react-native - 测试库 React-Native - 我尝试调试时不会发生内存泄漏
因此,我正在尝试为使用 react-navigation 和 relay modern 的 React-Native 组件编写测试。我收到此警告:
当我评论它时,我在测试中找到了确切的行,警告消失了:
问题是当我添加--runInBand --detectOpenHandles
到我的测试命令时,警告不再发生。非常感谢任何建议。
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"
。
有了这个:
该测试通过:
- 是否期望设置显示“无”仍会在 react-test-renderer 中呈现它?
- 有没有更好的方法来切换可见性?
- 有没有更好的方法来测试能见度?
更新:找到解决方案
我不得不这样做:
react-native - 是否真的有必要检查 getBy 或 findBy 方法是否返回真实值?
我在使用测试库的前端项目方面有一些经验,但我绝对不是专家。在大多数项目的代码审查过程中,发现一些具有这种结构的测试套件真的很常见:
我的疑问是,如果我们最终不会用这种方法检查DOM上是否存在元素是多余的......
根据文档,如果我们使用getBy
or findBy
,它应该在没有匹配项时抛出错误。所以我假设没有办法 agetBy
返回一个虚假的值,或者 afindBy
解决一个虚假的值。如果它是真的,那么也许我们不需要再次检查它。是否有意义?
所以我想知道如果我们这样做是否真的很糟糕:
Idk 如果有意义,但 afaik 检查这些调用是否没有引发错误应该足以验证 DOM 上是否存在元素,对吗?
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 代码的组件
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
react-native - 开玩笑,react-testing-library 和 React Native:无法在未安装的组件上找到节点
如果只有一个次要版本或补丁版本关闭,则会发生灾难性故障,因为我已经阅读过软件包版本:
我的测试如下所示:
第一个测试通过,第二个从来没有通过,我总是得到:
我真的不明白这个错误。我实际上是rerender
在上面抛出错误的那一行调用 - 开玩笑(或者可能是反应)如何说组件已卸载?
我的意思是……这些东西是基本的。我想点击一个按钮并希望被导航到一个新屏幕。为什么这么难?
叹息......只是在 React 玩笑测试天堂的另一天。
另一个注意事项:当我们连接到 Gherkin 功能规范时,given
when
then
语法来自jest-cucumber
库 - 但我几乎不认为这是导致问题的原因。我 99% 确定这个错误存在react-testing-library
于react-native
.
javascript - 如何在测试库中测试 react native 的警报?
我想检查警报中的文本,也许从中获取一个按钮
});
我有一个控制器(功能)和屏幕(视图)结构,如果您可以帮助提供文本中的示例测试代码以发出警报或按钮,我很感激。
我想测试打开警报时屏幕上显示的消息,例如:“取消”
我找到了解决我的问题的方法, 您需要导入警报,您可以测试呼叫、警报中的文本以及 onpress 功能
从'react-native'导入{警报};
jest.spyOn(警报,“警报”);
期望(Alert.alert).toHaveBeenCalled(); //检查调用
常量 alertContent = Alert.alert.mock.calls[0]; //您可以检查文本并按 onpress 制作控制台日志(alertContent)