javascript - 如何使用反应测试库测试自定义 Hook
问题描述
我尝试使用 react-hooks-testing-library,但似乎没有处理使用 useContext 的钩子。
import React,{useContext} from 'react'
import {AuthContextData} from '../../AuthContext/AuthContext'
const useAuthContext = () => {
const {authState} = useContext(AuthContextData)
const {isAuth,token,userId,userData} = authState
return {isAuth,token,userId,userData}
}
export default useAuthContext
解决方案
您必须将钩子包装在上下文提供程序中:
let authContext
renderHook(() => (authContext = useAuthContext()), {
wrapper: ({ children }) => (
<AuthContextData.Provider value={/* Your value */}>
{children}
<AuthContextData.Provider>
)
})
推荐阅读
- python - 聚合后排序和选择(熊猫)
- objective-c - 无法构建 Objective-C 模块“ContactsUI”
- python - 如何将绘制在不同图形上的图像保存到 matplotlib 中的不同位置?
- firefox - VueJS - DOMException:“操作不安全。”
- regex - 从 googlemaps JSON 响应中提取值
- python - 使用范围打印 [100, 1000, 10000]
- android - adb shell "screencap -p /sdcard/screen.png" 失败并显示“设备上没有剩余空间”,但有足够的空间
- javascript - 单击按钮显示新组件
- api - 使用多部分内容类型向 API 发送 post 请求
- c++ - CMake 外部项目 BUILD_COMMAND 失败