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

javascript - 测试库 React Native

如何使用测试库反应原生检查formik表单中的禁用按钮?这是我的表单js。在这个表单中,我有文本输入会 testId input_email,如果电子邮件无效,按钮提交应该被禁用。

这是我的测试文件。在这个测试文件中,在 fireEvent changeText 和 blur 之后,会检查 email 输入的值并检查 button_submit

但是当我运行这个测试文件时会抛出这样的错误

预期:假接收:未定义

0 投票
0 回答
416 浏览

react-native - 测试包含 AppLoading 组件的应用

我是单元测试领域的新手,我刚刚开始为我的 React Native (Expo) 应用程序编写测试。经过研究,我终于开始使用Jest 和 React Native Testing Library

考虑以下使用AppLoading 组件的情况。

我最终遇到以下错误(尽管测试通过了):

...导致同样的错误。

但是,如果我onFinish以以下方式将 -callback 包装在我的组件中,则测试通过而不会发出警告。

但是我真的想用特定于测试的函数来污染我的 React 组件吗?我没有看到这方面的例子,所以我只能假设这是不好的做法。

这里有什么建议吗?

更新我在我的评论中得到了@Estus FlaskwaitFor之后 使用的建议。render成功了……测试现在通过了。

https://callstack.github.io/react-native-testing-library/docs/api/#waitfor

0 投票
0 回答
1663 浏览

react-native - 测试错误:测试时 useSharedValue 不是函数

描述

我正在使用 react-native-reanimated 并且在测试时,useSharedValue 会抛出一个错误,即在使用 jest 和 react-native-testing-library 时它不是函数。我通过使用作为包的一部分提供的模拟来模拟 react-native-reanimated。我还注意到 VS Code 突出显示 reanimated 没有导出成员 useSharedValue、useAnimatedStyle 和 withTiming,但是该组件仍然可以正常运行而没有任何错误。

有谁知道需要做什么才能正确模拟它?

代码

用于查看组件是否呈现的测试

放置在名为 react-native-reanimated.js 的模拟中的模拟文件

使用 Reanimated 的组件 - Switch.tsx

包版本

React:16.11.0 React Native:.062.2 React Native Reanimated:2.0.0-alpha.3

截图

VS Code 截图 测试错误

0 投票
1 回答
2246 浏览

javascript - Jest + react-navigation 未定位路线/参数

我正在尝试使用 react-navigation 为应用程序编写测试,但我遇到了正确读取路线和参数的问题。

我收到一个错误

TypeError:无法读取未定义的属性“参数”

const [leadId] = useState(route.params.leadId);

我的组件看起来像

我已经尝试遵循https://callstack.github.io/react-native-testing-library/docs/react-navigation/但我Warning: React.createElement: type is invalid在包装组件时收到了。

我的测试看起来像

我的模拟是

我不确定我是否错误地包装了组件,或者我是否遗漏了其他东西。

任何想法或帮助将不胜感激。

谢谢。

0 投票
0 回答
1537 浏览

react-native - react-native 和 expo 中的 expect(jest.fn()).toHaveBeenCalledWith(...expected)

我正在尝试为控制器编写单元测试,它是用 react-native 和 expo 编写的 以下是单元测试失败的登录方法

登录.tsx

上面代码的单元测试是用 react-native 和 expo 编写的

登录.test.tsx

错误部分

我收到以下错误。需要知道我在这里缺少什么吗?

图书馆

0 投票
0 回答
596 浏览

react-native - 如何用玩笑正确地模拟反应导航?

我在以下期间得到以下信息npm test

这在模拟导航模块后出现,这是我的__mocks__/react-navigation.tsx文件:

我做错了什么?你能帮忙吗?

反应导航版本:3.11.0

0 投票
0 回答
1113 浏览

react-native - 使用 react-navigation v5 测试 react-native-testing-library

我正在寻找使用 react-native-testing-library 测试 react-navigation v5。文档说要执行以下操作。

https://callstack.github.io/react-native-testing-library/docs/react-navigation

https://medium.com/@dariaruckaolszaska/testing-your-react-navigation-5-hooks-b8b8f745e5b6

这篇中等文章建议我创建一个 MockedNavigator 组件。这会是我所有屏幕的 mockedNavigator 组件吗?这是可重复使用的吗?

我正在寻找的答案是。我是在所有单元测试中使用真正的 AppNavigator 组件还是使用 MockedAppNavigator?此外,我如何传递道具?

文档不清楚,我正在寻找清晰度。我们正在使用的许多新组件都使用钩子,并且 react-navigation-v5 无法访问某些道具。

0 投票
0 回答
245 浏览

react-native - 如何通过 React Native 测试库中的可访问性角色和标签选择元素

我的屏幕上有多个不同的按钮accessibilityLabel

查询getByRole忽略指定可访问性标签的第二个参数(在非本地测试库中可以正常工作)。

如何同时通过角色和标签查询元素?

0 投票
1 回答
1350 浏览

react-native - 如何断言 React Native 测试库中的按钮被禁用?

如何断言 React Native 测试库中的按钮被禁用?我会想象这样的事情:

但 RNTL 不提供toBeDisabled断言。

0 投票
0 回答
770 浏览

react-native - 如何使用 Jest 测试 Modal (react-native) 是否可见?

Modal 也没有 testID 道具。

另外,我使用的是来自 'react-native' 而不是 'react-native-modal' 的 Modal