#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. Но возможно ли это?