Saya telah mengemas kini perpustakaan Pengujian tetapi saya sukar mencarinya dalam kes ini waitForNextUpdate
的替代方法(在react-testing-library
v13中不再可用https://github.com/testing-library/react-testing-library/issues/1101)。我尝试使用rerender()
tetapi ia nampaknya tidak membantu:
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: {...} }); });
Dalam versi Perpustakaan Pengujian React yang lebih baharu,
GunakanwaitForNextUpdate()
不再可用。相反,您可以使用act函数来处理异步更新,该函数也由@testing-library/react-hooks
tersedia. Cuba kod berikut:act
untuk memastikan kemas kini komponen dikendalikan dengan betul