首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RTL测试React自定义钩子(使用react query)?

如何使用RTL测试React自定义钩子(使用react query)?
EN

Stack Overflow用户
提问于 2022-06-13 09:41:53
回答 1查看 934关注 0票数 0

我有一个自定义的React钩子,它在它-self中使用了react query useQuery():

代码语言:javascript
复制
const useFetchSomething = () => {
  const { data, isLoading } = useQuery('key', ....);
  return .......
}

我必须创建一个自定义钩子,然后在其中使用useQuery()钩子,因为它有一些特性,并从react查询中获取数据!

我试着用react-hooks-testing-library测试这个钩子

代码语言:javascript
复制
const { result } = renderHook(() => useFetchSomething());

但我知道这个错误:

代码语言:javascript
复制
Error: Uncaught [Error: No QueryClient set, use QueryClientProvider to set one]

为此,我如何包装这一部分:renderHook(() => useFetchSomething())与提供者?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 13:33:01

renderHook接受options,其中一个是包装器组件,您可以在呈现时指定一个react组件来包装测试组件。这是一个放置提供者的好地方。

代码语言:javascript
复制
const createWrapper = () => {
  const queryClient = new QueryClient()
  return ({ children }) => (
    <QueryClientProvider client={queryClient}>
      {children}
    </QueryClientProvider>
  )
}

const { result } = renderHook(() => useFetchSomething(), {
  wrapper: createWrapper()
});

我的博客里有一个测试反应查询的深度指南

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72600751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档