SuperAPI AI 工具集

tanstack-query-intent-lifecycle-test-query-code

测试与质量

查看项目

更新于 10-16 06:13

技能介绍

用途:在测试 TanStack Query(React Query)代码时,提供隔离的 QueryClient 实例、测试用 Provider 配置与异步断言等做法,避免测试间相互影响。

主要能力与用法:

  1. 每个测试创建独立客户端。用 createTestClient 返回 new QueryClient({ defaultOptions: { queries: { retry: false }, mutations: { retry: false } } }),不要导出共享的全局 queryClient,否则缓存与 mutation 状态会跨测试泄漏。
  2. 测试 Provider。用 createTestWrapper 创建 QueryClientProvider 包裹组件,把 children 传入 Provider。
  3. 关闭重试。默认重试会延迟失败并让测试看起来卡住,应设置 retry: false。
  4. 直接测试客户端。可用 queryClient.fetchQuery({ queryKey, queryFn }) 并 await 结果;测试结束后调用 queryClient.clear() 清理缓存。
  5. 异步断言。查询状态是异步的,必须等 fetchQuery 的 Promise resolve 或 UI 等待完成后,再断言 getQueryData 等状态,不能在 Promise 完成前打印或断言。

适用场景:React 中 TanStack Query 的查询、变更与 Hook 测试,尤其是需要隔离状态、避免重试等待的单元与集成测试。

限制:资料未提供具体测试框架配置、Hook 测试细节、完整示例代码及更多边界情况,相关事实暂未提供。