使用 Jest 进行 React.js 自定义钩子测试

时间:2021-06-15 11:41:29

标签: javascript reactjs jestjs react-hooks ts-jest

我正在尝试使用 jest 函数测试自定义钩子,但我不知道该怎么做。可以请帮助我如何为这个 Custome 钩子编写一些开玩笑的函数测试用例。

import React, { useEffect } from 'react'

const useOutsideClick = (
 ref: React.RefObject<HTMLElement>,
 callback: () => void,
 enabled = true
): void => {
 const el = ref.current
 useEffect(() => {
   if (!enabled) {
     return
   }

   const handleClick = e => {
     if (el && !el.contains(e.target)) {
       callback()
     }
   }

   document.addEventListener('click', handleClick)

   return () => {
     document.removeEventListener('click', handleClick)
   }
 }, [callback, el, enabled])
}

export default useOutsideClick

1 个答案:

答案 0 :(得分:0)

将钩子加载/导入到测试文件中,然后像这样模拟它。

import useOutsideClick from "../your-file-name";
jest.mock('../your-file-name', () => ({
     useOutsideClick: jest.fn() 
}));