[英]How can I test React custom hook with RTL which uses react-query?
我有一個自定義的 React 鈎子,它在自身中使用 react-query useQuery():
const useFetchSomething = () => {
const { data, isLoading } = useQuery('key', ....);
return .......
}
我必須創建一個自定義鈎子,然后在其中使用useQuery()
鈎子,因為它具有一些功能並從 react-query 獲取數據!
我試圖用react-hooks-testing-library
測試這個鈎子:
const { result } = renderHook(() => useFetchSomething());
但我收到此錯誤:
Error: Uncaught [Error: No QueryClient set, use QueryClientProvider to set one]
為此,我該如何包裝這部分: renderHook(() => useFetchSomething())
with Provider?
renderHook接受options
,其中之一是 包裝器組件,您可以在其中指定一個反應組件來在渲染時包裝測試組件。 這是放置供應商的好地方。
const createWrapper = () => {
const queryClient = new QueryClient()
return ({ children }) => (
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
)
}
const { result } = renderHook(() => useFetchSomething(), {
wrapper: createWrapper()
});
我的博客中有一個測試反應查詢的深入指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.