Модульное тестирование: взаимодействие контекста API с ферментом, возврат пустого объекта. - PullRequest
0 голосов
/ 17 апреля 2019

Я впервые пытаюсь использовать React context API для передачи информации от основного компонента его компоненту внука.

Итак, сначала я создал контекст Context.js

Вот основной компонент, определяющий контекст Main component

Родительский компонент не заботится о контексте и находится здесь только для создания большого дочернего компонента. Parent Component

А вот дочерний компонент, который читает контекст Child Component

Пока проблем нет. Все работает как положено. ChildComponent получил значение контекста.

Проблема возникает, когда я пытаюсь проверить это с помощью шутки / энзима. Я не могу установить контекст Unit test

Последнее ожидание не выполняется и значение контекста является пустым объектом Так что foo не определено

Я воссоздал проблему здесь: https://codesandbox.io/embed/x25yop4x5w?fontsize=14

Спасибо за вашу помощь

1 Ответ

3 голосов
/ 17 апреля 2019

Фермент context влияет на устаревший контекст React, а не на современный контекстный API. Надо издеваться с:

mount(<MyContext.Provider value={{foo: 987}}><ChildComponent/></MyContext.Provider>)

И утверждается с помощью:

expect(wrapper.find('h2').text()).toBe('Context value: 987');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...