【发布时间】:2020-04-06 02:30:42
【问题描述】:
我有一个 React 组件,它使用 Promise 检索数据,然后在 Promise 解决时调用 setState。然后它使用更新后的状态来改变渲染的内容。
在测试这个时,我使用testing library 的findBy* methods 来等待渲染的组件使用来自 Promise 的内容进行更新:
await findByText("Failure details", { exact: false });
我的测试通过了——它们正确地等待组件重新渲染。但是,我在运行它们时会收到这样的警告(我正在使用 Jest,但我认为这无关紧要):
Warning: An update to MyComponent inside a test was not wrapped in act(...).
Everything I've found online that's related 这要么是关于使用 useEffect 的组件,要么是关于在其中包括对 act 的显式调用的测试(我没有) ,我认为这里没有必要——我的测试本身并没有改变组件,除了它调用render。
简而言之,我的情况似乎比其他人写的更简单——我只是使用setState 和findBy* 查询,没有更复杂的。
这个问题有同样简单的解决方案吗?
【问题讨论】:
标签: reactjs react-hooks react-testing-library