@RomanChasovitin
Front-End developer

Как работать с React Hooks в тестах jest/enzyme?

У меня есть компонент, в котором есть useState и функция updateTotalSum, которая триггерит setTotalSum. Как я могу протестировать и получить значение из useState(totalSum), а также вызвать функцию updateTotalSum

//My component

const SomeComponent = props => {
  const [totalSum, setTotalSum] = useState(null);
  
  const updateTotalSum = sum => {
  //...do something
  setTotalSum(sum);
  }
  
  return <AnotherComponent updateTotalSum={updateTotalSum} totalSum={totalSum} />
}

//My tests

// Пример теста для компонента-класса. Все корректно работает.
it('should correctly called updateTotalSum method', () => {
  const wrapper = shallow(<SomeComponent />;
  wrapper.instance().updateTotalSum(1000);
  expect(wrapper.state('totalSum')).toBe(1000);
});

// Тест для функционального компонента. Ожидаемо, не работает
it('should correctly called updateTotalSum method', () => {
  const wrapper = shallow(<SomeComponent />;
  wrapper.updateTotalSum(1000);
  expect(wrapper.totalSum).toBe(1000);
});
  • Вопрос задан
  • 257 просмотров
Пригласить эксперта
Ответы на вопрос 1
miliko0022
@miliko0022
Краткие личные сведения, включая интересующую вас
Enzyme пока не поддерживает хуки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы