Javascript 为什么jest没有正确运行我的测试?
我正在尝试使用jest测试我的代码,到目前为止,我有以下几点:Javascript 为什么jest没有正确运行我的测试?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我正在尝试使用jest测试我的代码,到目前为止,我有以下几点: const [error, setError] = useState(null) async function fetchThis() { try { if (something) { myFunction() // i am mocking this } else { somethingEls
const [error, setError] = useState(null)
async function fetchThis() {
try {
if (something) {
myFunction() // i am mocking this
} else {
somethingElse()
}
} catch (err) {
setError(true)
}
}
useEffect(() => {
fetchThis()
}, [])
我在模仿myFunction
就像这样:
myFunction.mockImplementationOnce(() => {
throw new Error()
})
因此,它成功地进入了捕捉区
但是由于某些原因,它从未将setError()
函数设置为true
开玩笑的测试:
const { queryByText, getByText, getByTestId, rerender, debug, container } = render(
<App {...props} />,
)
rerender(<App {...props} />)
见鬼…您可能需要使用
act()
来更新react状态。
useEffect(() => {
setError(true)
}, [])