我是 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
默认情况下测试 Loading 状态,并且我想编写第二个测试来测试传入 props 的 Children 是否在authStatus
Authed 时呈现。我找到了一种模拟实现状态更改的方法,但是该实现仅限于一个useEffect
,因为将来可能会有多个useEffects
,我不想采用这种方法。有没有更好的方法来测试这种行为?