首页 > 解决方案 > 如何使用反应测试库测试自定义 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

标签: javascriptreactjsunit-testingreact-hooksreact-hooks-testing-library

解决方案


您必须将钩子包装在上下文提供程序中:

let authContext
renderHook(() => (authContext = useAuthContext()), {
  wrapper: ({ children }) => (
    <AuthContextData.Provider value={/* Your value */}>
      {children}
    <AuthContextData.Provider>
  )
})

推荐阅读