如何在没有 UI 的情况下对钩子进行 Jest 测试

Posted

技术标签:

【中文标题】如何在没有 UI 的情况下对钩子进行 Jest 测试【英文标题】:How to make Jest test for hook without UI 【发布时间】:2021-06-21 00:36:48 【问题描述】:

我有下一个钩子

const useFetch => 
  let  state, dispatch  = useContext(AppContext);

  const fetch1 = async () => 
  ...code to fetch data (mocked)
  
  const fetch2 = () => 
  ...
  
  return 
    fetch1,
    fetch2,
    ...
  ;
;

export default useFetch;

我需要创建 jest 测试,但我不能直接这样做,因为它违反了钩子规则,而且我无法渲染它,因为它没有要渲染的 UI,它只是获取数据以存储到上下文中。

谁能帮我理解怎么做?

在此先感谢,对不起我的英语。

【问题讨论】:

【参考方案1】:

您可以创建一个仅用于测试目的的包装器组件并使用它。但是Testing Library 有一个很好的工具,hooks-testing-library。如果您有更多要测试的钩子,它可能是您项目的一个很好的补充。

【讨论】:

以上是关于如何在没有 UI 的情况下对钩子进行 Jest 测试的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有“排序”的情况下对对象向量进行排序

如何在没有操作的情况下对 Pandas 数据框进行分组或聚合

如何在没有评估环境的情况下对函数进行集群导出

如何在没有父目录的情况下对目录进行 tar [关闭]

useEffect 钩子没有被 jest.spyOn 嘲笑

如何在没有 Microsoft 身份的情况下对 blazor 服务器进行 jwt 身份验证?