javascript - 使用 Jest 的 React.js 自定义钩子测试
问题描述
我正在尝试使用 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
解决方案
将钩子加载/导入到测试文件中,然后像这样模拟它。
import useOutsideClick from "../your-file-name";
jest.mock('../your-file-name', () => ({
useOutsideClick: jest.fn()
}));
推荐阅读
- google-kubernetes-engine - 是否可以只有一个入口将流量路由到 GKE 上不同命名空间上的不同服务?
- r - 有没有办法根据股票在用户定义的时期内的回报来创建列?
- typescript - 打字稿检测类型
- python - tensor2tensor/avg_checkpoints 脚本是否错误
- postgresql - Flask-Migrate 脚本未对 Postgres 数据库应用更改
- javascript - 如何从javascript中的对象列表中找到字符串的某些部分与对象的字符串值的最完美匹配?
- python - 在 Python 中使用 pymunk 和 pygame 实现内置 GUI?
- java - 是否有任何方法/挂钩来强制 JVM 运行终结?
- lua - 字典帮助/数据存储
- c# - NUnit 获取结果未运行