Тестирование функций непосредственно в функциональном компоненте - PullRequest
1 голос
/ 05 апреля 2020

Предположим, у нас есть функциональный компонент, как показано ниже.

const Test: React.FC = () => {

  const isItemSelected = () => { console.log('Hi); };

  return (
  <div> </div>
  );
};

И я хочу напрямую вызывать функцию isItemSelected во время написания модульного теста, не имитируя событие щелчка или изменения. Возможно ли это?

1 Ответ

0 голосов
/ 05 апреля 2020

Один из способов сделать это легко, без использования каких-либо дополнительных платформ для тестирования, - это взять свою бизнес-логику c и отделить ее от фактических компонентов React, чтобы в вашем случае вы могли определить свою функцию как таковую:

const isItemSelected = () => { console.log('Hi'); };
const Test: React.FC = () => {

  return (
  <div> </div>
  );
};

Теперь вы можете написать простые модульные тесты для isItemSelected. Если в вашей функции есть зависимости, скажем, 'setState', вы можете просто передать это в качестве аргумента своей функции. Но будьте осторожны, если у вас нет логики c, то вы пытаетесь выполнить пользовательский интерфейс модульного тестирования, который, как правило, не нужен, что может быть тестовым антишаблоном.

Также см .: http://blog.codepipes.com/testing/software-testing-antipatterns.html

...