Я использую фермент и очень люблю его. Он работает с react 16, пока я не захотел протестировать свой новый проект, который использует новый контекстный api react.
Если я визуализирую только свой базовый компонент, используя мелкий и консольный журнал отладки компонента, я могу видеть его содержимое, но когда я использую новый контекстный api с поставщиком и потребителем, я получаю <undefined /> в качестве вывода. Фермент не выводит компонент, а реагирует.
Может кто-нибудь дать некоторые рекомендации.
Спасибо.





Поддержка этой и других функций React 16.3 будет включена в следующий выпуск фермента, который должен произойти в середине лета этого года (как сказал здесь).
А пока вот обходной путь:
const outer = shallow(<SimpleComp />);
const Children = outer.props().children({ /* context */ });
const wrapper = shallow(Children);
Чтобы использовать mount () с новым контекстным API, используйте этот ферментный пластырь.
Когда я пробую этот метод, я получаю сообщение об ошибке: «Дети - это не функция». Это особая версия фермента?
Я думаю, что Enzyme уже выпустил исправление, но не знаю, как его использовать. Кто-нибудь знает?
Я бы сказал, что это правильнее: const outer = shallow(<SimpleComp />); const wrapper = outer.props().children({ /* context */ });
@EnriqueMorenoTent Где вы видели, что они его выпустили? Не удалось найти его в журнале изменений.
Я не уверен, что смогу снова найти URL: /
Я не думаю, что поддержка нового стиля Context API еще доступна в энзиме. См. github.com/facebook/react/pull/14329
Это очень помогло. Большое спасибо.