Почему ScrollView скрывает своих детей, когда я проверяю его с помощью Enzyme in Jest? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть проект React Native, и я использую Jest + Enzyme для тестовой среды.

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

Вот мой тест:

describe('Example test', () => {
  it('should find text', () => {
    const wrapper = mount(<View><Text>lorem ipsum dolor sit</Text></View>);
    expect(wrapper.find('Text').length).toEqual(1);
  });

  it('should find text in ScrollView', () => {
    const wrapper = mount(<ScrollView><Text>lorem ipsum dolor sit</Text></ScrollView>);
    expect(wrapper.find('Text').length).toEqual(1);
  });
});

Первый тест работает нормально, когда я обертываю его в View.Он может видеть Text просто отлично.

, второй тест не пройден, потому что он не видит никаких компонентов Text под ScrollView.

Есть идеи, почему?

У меня есть полный пример теста, настроенный здесь: https://github.com/lehresman/react-native-jest-scrollview-failure

Просто следуйте инструкциям в README, чтобы начать работу.

1 Ответ

0 голосов
/ 14 февраля 2019

Вы должны попытаться смоделировать это, отметьте этот выпуск .

Я пробовал с этим кодом, и он работает.

jest.mock("ScrollView", () => {
   const RealComponent = require.requireActual("ScrollView");
   const React = require("React");
   class ScrollView extends React.Component {
   scrollTo() {}

   render() {
      return React.createElement("ScrollView", this.props, 
   this.props.children);
   }
  }
  ScrollView.propTypes = RealComponent.propTypes;
  return ScrollView;
});

enter image description here

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