问题标签 [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.
reactjs - 测试异步反应钩子时我应该在哪里使用act?
使用我测试异步反应挂钩时,@testing-library/react-hooks
我看到一条错误消息。错误消息提到包装代码,act(...)
但我不确定我应该在哪里执行此操作。
我试图将部分代码包装进去,act(...)
但每次尝试都会导致测试失败。
reactjs - 使用 act 不会更新状态?
我有一个像这样的自定义钩子:
至于我的测试,我有这样的事情:
测试“'应该将值更新为true'”的地方,当我登录时isOpen
,它保持为假。我不确定为什么它不更新,除非act
它不做它正在做的事情?
reactjs - 如何测试可以将 html 元素的 ref 传递给它的反应钩子
我有一个自定义钩子,它可以将可选的 ref 作为对象的属性传递给它,该钩子将其作为参数:
该代码有效,但我现在正在尝试使用 @testing-library/react-hooks 库为此react-testing-library
编写测试。
我正在使用renderHook
@ testing-library/react-hooks,但我不知道如何在组件外部创建引用或模拟引用。
reactjs - 如何使用 react-hooks-testing-library 测试自定义 async/await 钩子
我创建了一个自定义反应钩子,它应该处理所有不太重要的 api 请求,我不想将其存储在 redux 状态中。Hook 工作正常,但我无法测试它。我的测试设置是开玩笑和酶,但我决定在这里也尝试一下react-hooks-testing-library。
到目前为止,我尝试的是首先使用fetch-mock库来模拟 fetch 请求,效果很好。接下来,我使用renderHook
来自 react-hooks-testing-library 的方法渲染钩子。不幸的是,看起来我不太了解该waitForNextUpdate
方法。
这就是我的钩子的样子。
使用Api钩子
Hook 可以采用我想测试的 3 种不同的状态组合。不幸的是,我不知道怎么做。
加载数据中:
加载数据:
错误:
这就是我的测试此时的样子:
调用API函数
reactjs - 自定义 Hook:如何在组件卸载时不调用测试集状态
卸载组件时不调用测试集状态
我有一个自定义钩子,它在页面加载时调用一个承诺来设置数据。为了确保当我使用取消请求的组件卸载时不会调用数据/错误的设置状态,如下所示:
我的测试是:
但我收到错误:
有人可以指导如何测试吗?
谢谢
javascript - 测试使用 useEffect 钩子和 apollo 的自定义上下文钩子
我创建了一个上下文,该上下文公开了一个易于使用的钩子。在这个钩子中,我已经确保在呈现页面之前预加载了一些数据,如下所示:
我想使用测试库对此进行测试,在阅读了一些文章和 github 问题后,我得出以下结论:
const wrapper = ({ children }) => ( {children} );
可悲的是,它说当前为空。我希望这是因为useEffect
导致状态更新,因此首先返回 null (默认值)。更新前。这就是我介绍waitForNextUpdate
.
但是,它给了我以下错误:
警告:传递给 TestRenderer.act(...) 函数的回调不能返回任何内容。
关于如何解决这个问题的任何想法?
node.js - 使用 apollo useLazyQuery 的 customPollingHook 的单元测试
所以我编写了一个自定义轮询钩子,它使用 useContext 和 useLazyQuery 钩子。我想为此编写一个单元测试,它应该涵盖它的返回值状态和副作用。
到目前为止,我已经做到了这么多,但我不太确定如何继续。有小费吗?
reactjs - 如何测试在渲染时引发错误的自定义 Hook
我有一个自定义钩子,如果在执行钩子时满足条件,它会抛出错误。我想测试是否抛出了错误,所以如果抛出错误,测试应该通过。
我尝试将 Hook 包装在 中Error Boundary
,但 result.error 未定义。那么如何测试是否引发了错误react-hooks-testing-library
?
reactjs - 如何使用 useReducer 钩子测试组件?
减速器
零件
测试
上面的测试示例不起作用,但用于演示我想要实现的目标。并且实际上会呈现 0 div,因为组件中声明的初始状态包含 0 个项目。
为了测试目的,我将如何修改减速器的状态或更改它部署的初始状态?
我习惯于在多个组件中使用 Redux 减速器,但是 useReducer 需要一个传递的 initialState ......这引发了一个问题:react-hook 的减速器是否可以通过多个组件作为单个实例使用,还是始终是 2 个单独的实例?
reactjs - 使用 renderHook 测试钩子
我想测试一个自定义钩子,它被实现为一个帮助函数,以便与其他钩子重用代码。它正在调用useDispatch
并useSelector
在其实现中,以及将数据保存在会话存储中:
和测试:
无论我尝试什么,测试只到达“INSIDE”控制台日志并且不打印“THE OBJECT:”控制台日志。测试本身仍然通过,所以就像以useSelector
某种方式停止了其余的 renderHook 执行。
我猜这与测试没有连接商店的事实有关......在这种情况下可以做些什么来测试redux?