Когда использовать act () в шутливых юнит-тестах с response-dom - PullRequest
0 голосов
/ 07 февраля 2020

В соответствии с документацией по тестированию модулей реакции:

act ()

Чтобы подготовить компонент для утверждений, оберните код, который отображает его и выполняет обновления внутри акта () вызова. Это приближает ваш тест к тому, как работает React в браузере.

Но тест работает отлично в обоих случаях:

Без act ()

it('Should return some text', () => {
  render(<TestComponent />, container);
  expect(container.textContent).toBe('some text');
});

С act ()

it('Should return some text', () => {
  act(() => {
    render(<TestComponent />, container);
  });

  expect(container.textContent).toBe('some text');
})

Вопросы: Что именно делает act () и когда кто-то должен его использовать?

1 Ответ

1 голос
/ 11 февраля 2020

Из act () документы:

При написании тестов пользовательского интерфейса такие задачи, как рендеринг, пользовательские события или выборка данных, могут рассматриваться как «единицы» взаимодействия с пользовательский интерфейс. React предоставляет вспомогательный метод act (), который гарантирует, что все обновления, связанные с этими «единицами», были обработаны и применены к DOM, прежде чем вы сделаете какие-либо утверждения

Дальнейшее чтение и примеры: https://github.com/mrdulin/react-act-examples/blob/master/sync.md

...