Как предотвратить повторное отображение компонента функции, содержащего крючок useEffect, в тесте

#reactjs #react-hooks #jestjs #rerender

Вопрос:

Я тестирую с помощью jest и визуализирую макет компонента, который содержит хук useEffect, но при запуске тестов я получаю ошибку «Слишком много повторных рендеров. React ограничивает количество рендеров, чтобы предотвратить бесконечный цикл». Как мне предотвратить эффект использования, чтобы вызвать повторную визуализацию и провалить мои тесты.

Макет компонента создается следующим образом: renderWithReactIntl(lt;Component {...mockData} /gt;);

Я пытаюсь сделать что-то вроде следующего, чтобы попытаться позвонить один раз, но, похоже, это не помогает

 describe("lt;Component /gt;", () =gt; {  beforeEach(() =gt; {  jest.clearAllMocks();  jest.spyOn(React, "useEffect").mockImplementationOnce(fn =gt; fn());  });  

Комментарии:

1. почему вы хотите подавить очень важную функцию реакции? Таким образом, ваши тесты будут кардинально отличаться от реального сценария, поэтому они будут бесполезны! Не борись useEffect , борись с условием, почему это зацикливается. Я не могу давать целенаправленные советы, пока не увижу код компонента и теста

2. Но возможно ли это?