React-Query使用react-testing-library进行测试

1.测试react-query首先我们必须得拥有queryClient,所以我们初始化queryClient,因为默认是重试三次,这意味着如果想测试错误的查询,测试可能会超时。所以可以在初始化时关闭

const createWrapper = () => {
    const queryClient = new QueryClient({
        defaultOptions: {
            queries: {
                retry: false,
            },
        },
    });
    return ({ children }) => <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;
};

2.网上很多还要引入依赖@testing-library/react-hook,因为请求是异步的, 上面这个库提供了waitFor等待数据返沪,但是目前@testing-library/react也已经提供。使用方法如下

it('testing product detail query', async () => {
        const { result } = renderHook(() => useQueryProductDetail(''), {
            wrapper: createWrapper(),
        });
        await waitFor(() => expect(result.current.isSuccess).toBe(true));
    });

3.正常测试使用react-query的组件时,也需要创建queryClient,具体代码如下

it('test render search detail', async () => {
        const queryClient = new QueryClient();
        const { debug, findByText, findByRole } = await render(
            <QueryClientProvider client={queryClient}>
                <SearchDetail />
            </QueryClientProvider>
        );
        //debug(await findByRole('qwe'));
    });

建议读读该文章,更详细的讲述了如何进行ReactQuery的测试https://tkdodo.eu/blog/testing-react-query

最后编辑于:2025-05-18 10:43:28


喜欢的朋友记得点赞、收藏、关注哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值