Jest:在 useEffect 中测试 React 状态变化

问题描述

我是 Jest 和 Enzyme 的新手,正在努力编写单元测试以检查当存在某个状态值时我的组件是否正确呈现。

下面是我的代码:

//Auth.js
export const Auth = ({ children }) => {
    const [authStatus,setAuthStatus] = useState('waiting')

    useEffect(()=>{
       const status = await getAuth()
       if (status) {
           setAuthStatus('Authed')
       }
       else{
           setAuthStatus('Unauthed')
       }
    },[])

    return (
       <>
          {authStatus === 'waiting' && <p>Loading...</p>}
          {authStatus === 'Authed' && <>{Children}</>
       </>
    )
}

在上面的代码中,我想测试 authStatus 为默认值时的加载状态,我想编写第二个测试来测试当 authStatus 为 Authed 时传递到 props 中的 Children 是否呈现.我找到了一种模拟实现状态更改的方法,但该实现仅限于一个 useEffect,因为将来可能会有多个 useEffects,我不想采用这种方法。有没有更好的方法来测试这种行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)