찾다

 >  Q&A  >  본문

renderHook의 waitForNextUpdate 대안

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粉198670603P粉198670603435일 전958

모든 응답(1)나는 대답할 것이다

  • P粉274161593

    P粉2741615932023-09-23 10:57:40

    최신 버전의 React Testing Library에서는 waitForNextUpdate()不再可用。相反,您可以使用act函数来处理异步更新,该函数也由@testing-library/react-hooks를 사용할 수 있습니다. 다음 코드를 시도해 보세요. 으아아아 act를 사용하여 구성 요소 업데이트가 올바르게 처리되는지 확인하세요.

    회신하다
    0
  • 취소회신하다