Testing-library를 업데이트했지만 이 경우 찾기가 어렵습니다. waitForNextUpdate
的替代方法(在react-testing-library
v13中不再可用https://github.com/testing-library/react-testing-library/issues/1101)。我尝试使用rerender()
하지만 도움이 되지 않는 것 같습니다.
const mockGetSummary = getSummary as jest.MockedFunction<any>; test('hook的初始状态', async () => { mockGetSummary.mockImplementation(() => ({ setOptions: () => ({ call: () => Promise.resolve({mycustomObject}), }), })); const { result, rerender } = renderHook(() => useHomePageData()); expect(result.current).toMatchObject({ loading: true, stats: null }); await waitForNextUpdate(); // <--- 如何等待hook执行完毕? expect(result.current).toMatchObject({ loading: false, stats: {...} }); });
P粉2741615932023-09-23 10:57:40
최신 버전의 React Testing Library에서는 waitForNextUpdate()
不再可用。相反,您可以使用act函数来处理异步更新,该函数也由@testing-library/react-hooks
를 사용할 수 있습니다.
다음 코드를 시도해 보세요.
으아아아
act
를 사용하여 구성 요소 업데이트가 올바르게 처리되는지 확인하세요.