Как я могу погрузить или проверить компоненты React внутри компонента ContextConsumer, используя Enzyme? - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь протестировать опору компонента React, который заключен в ContextConsumer, но при запуске тестов Enzyme сообщает мне, что Method “props” is meant to be run on 1 node. 0 found instead.

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

-> MainComponent (который я создаю с помощью enzyme.shallow())

--------> SubComponent (вложено в MainComponent, в которое я погружаюсь через .find(). Этот компонент обернут в потребителя контекста React)

---------------> propOfSubComponent (Реактивная опора, которая содержит конкретный компонент для тестирования)

------------------------> SubSubComponent (последний компонент, к которому я пытаюсь получить доступ, используя .find())

--------------------------------> propOfSubSubComponent (последняя опора для тестирования)

Я пробовал массу способов решить проблему, но безрезультатно.

Ниже приведен мой реальный код.

<MainComponent {...someDefaultProps}>
  <SubComponent
    propOfSubComponent={
      //this component is wrapped in another file
      //into a React ContextConsumer
      <SubSubComponent propOfSubSubComponent />
    }
  />
</MainComponent>;

describe('Main component', () => {
  it('the prop is correctly passed', () => {
    const wrapper = enzyme.shallow(<MainComponent {...someDefaultProps} />);
    const SubSubComponent = wrapper
      .find('SubComponent')
      .dive()
      .find('SubSubComponent');


    expect(SubSubComponent.props().propOfSubSubComponent).toBe(0);
  });
});

Ферментные журналы:

Method “props” is meant to be run on 1 node. 0 found instead.

(ошибка возникает при попытке выполнить SubSubComponent.props() в .expect())

Есть предложения?

Заранее спасибо !!!

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