запросить внутреннее состояние компонента, используя useState с ферментом - PullRequest
1 голос
/ 24 марта 2019

Я использую фермент 3.9.0.

Я только что реорганизовал компонент класса в компонент, использующий хук useState.

Ранее я проверял внутреннее состояние компонента, распаковывая его так:

const shortcutActions = wrapper.state().shortcuts;    

expect(shortcutActions).toHaveLength(1); 

Можно ли запросить внутреннее состояние при использовании useState?

1 Ответ

1 голос
/ 24 марта 2019

Крючки являются совершенно новыми, и Enzyme обновляется для их поддержки.

Вы можете следить за общим прогрессом здесь: Issue # 2011 .

Поддержка useState в частности, отслеживается здесь: Issue # 2008 .

Таким образом, текущий уровень поддержки useState:

  • mount поддерживает get и обновление визуализированного элемента с помощью set
  • shallow поддерживает get, но пока не поддерживает обновление визуализированного элемента с set

Что касаетсязапрашивая внутреннее состояние напрямую, я не уверен, что это необходимо.

С этот раздел :

Крючки не работать внутри классов.Но вы можете использовать их вместо написания классов.

... так что хуки только работают так, как React предпочитает теперь называть "function components".

Любое состояние, определенное с помощью useState, будет существовать только внутри тела функции и не будет доступно для чего-либо вне функции.

Единственный способ изменить это состояние - взаимодействовать с визуализированным выводом, который возвращает функцияпоэтому тестирование функционального компонента должно просто включать взаимодействие с визуализированным компонентом и проверку его повторного рендеринга в соответствии с ожиданиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...