Mar*_*tzy 2 javascript reactjs react-testing-library react-hooks-testing-library react-query
我有一个自定义的 React 钩子,它本身使用了react-query useQuery():
const useFetchSomething = () => {
const { data, isLoading } = useQuery('key', ....);
return .......
}
Run Code Online (Sandbox Code Playgroud)
我必须创建一个自定义挂钩,然后使用useQuery()其中的挂钩,因为它有一些功能并从反应查询获取数据!
我尝试用以下方法测试这个钩子react-hooks-testing-library:
const { result } = renderHook(() => useFetchSomething());
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
Error: Uncaught [Error: No QueryClient set, use QueryClientProvider to set one]
Run Code Online (Sandbox Code Playgroud)
为此,我该如何包装这部分:renderHook(() => useFetchSomething())与提供者?
TkD*_*odo 10
renderHook接受options,其中之一是包装组件,您可以在其中指定一个 React 组件来在渲染时将测试组件包装在其中。这是放置提供者的好地方。
const createWrapper = () => {
const queryClient = new QueryClient()
return ({ children }) => (
<QueryClientProvider client={queryClient}>
{children}
</QueryClientProvider>
)
}
const { result } = renderHook(() => useFetchSomething(), {
wrapper: createWrapper()
});
Run Code Online (Sandbox Code Playgroud)
我的博客中有一份关于测试 React 查询的深入指南。
| 归档时间: |
|
| 查看次数: |
3972 次 |
| 最近记录: |