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

reactjs - 对自定义钩子进行单元测试以确保它调用另一个钩子

我们如何确保自定义钩子实际上调用了另一个钩子公开的方法?

比方说,我有一个useName内部利用的自定义钩子useState

我需要断言调用setName实际上调用了“setState”。我的测试用例编写如下:

我得到以下结果。

这可能吗,我这样做是否正确?

0 投票
1 回答
38 浏览

reactjs - 如何使用 useRef 获取多个映射元素?

在这里,我映射了一个包含要在页面上显示的图像的对象数组。在我尝试 useRef 的那一刻,它只抓住了我最后一个元素。我怎样才能拥有它,以便我的 useRef 多次抓住我?

如果我理解正确, use ref 只会抓取其中一个元素,所以我想最好的方法是动态地使不同的 useRefs 单独抓取?抱歉,刚学反应。

0 投票
2 回答
26 浏览

reactjs - 如何测试调度只被调用一次

我有一个自定义钩子,它在 URL 参数更改时调度一个动作:

我有一个模拟useDispatch和的测试useParams

现在,这行得通,因为我可以确定它getUser('test')已被调用,但包装它的useEffect目的是确保它只被调用一次。我该如何测试呢?

0 投票
0 回答
15 浏览

jestjs - TypeError:无法读取 renderHook 导入中未定义的属性“hasOwnProperty”

我正在尝试使用测试库中的 renderHook。当我运行测试时,出现此错误,TypeError: Cannot read property 'hasOwnProperty' of undefined

包.json

我的单元测试文件是

我运行单元测试时的错误消息是 TypeError: Cannot read property 'hasOwnProperty' of undefined

0 投票
1 回答
52 浏览

react-native - 测试 React Native Image.getSize:无法监视原始值;给定的字符串

我有一个钩子可以检测 React Native Image 的方向:

并最初编写了一个测试以查看是否getSize已调用:

我认为会起作用的基本测试(这是基于关于同一主题的这个问题/答案)。

但是在运行测试时出现此错误:

指的是const getSizeSpyOn = jest.spyOn(

该钩子将图像 uri 作为其参数,然后决定它应该是肖像还是风景图像,但我很困惑如何解决这个问题。有人知道我在做什么错吗?

0 投票
0 回答
21 浏览

reactjs - 对自定义钩子进行单元测试 - “无效的钩子调用。只能在函数组件的主体内部调用钩子”

背景:

我创建了一个自定义钩子,useModal()用于包装一些用于在应用程序周围创建/销毁模式的状态:

该钩子在应用程序周围使用时工作得非常好,但是当尝试使用 Jest 在它周围添加一些单元测试时,它会在尝试从钩子访问任何返回的项目时抛出以下错误:

Invalid hook call. Hooks can only be called inside of the body of a function component

这是单元测试:

尝试的事情:

我对这个问题的所有阅读都表明这是功能组件安装方式的问题,因此,安装@testing-library/react-hooks提供包装器的包来解决这个问题

https://react-hooks-testing-library.com/usage/basic-hooks

使用的软件包版本: