react-native-web: Макет модуля RN ​​"Dimensions" успешно применен для собственных тестов, но не для веб - PullRequest
0 голосов
/ 26 сентября 2019

Это примерно react-native-web и jest.

Мне нужно протестировать компонент, который использует RN Dimensions.У меня есть макет этого модуля, который возвращает жестко закодированные данные.Жестко закодированные данные, похоже, передаются в тестах Android / IOS, но реальные данные возвращаются при тестировании для веб.Один и тот же код используется на разных платформах.

Впервые я не могу использовать макет на разных платформах, и я не совсем уверен, почему это происходит ..

У меня есть такой компонент, какэто в MyComponent.js и MyComponent.web.js

class MyComponent extends Component {
  constructor(props) {
    super(props)
    // other stuff 
  }

  render() {
    const { width } = Dimensions.get("window");

    return <Text>{`screenWidth=${width}`}</Text>
  }
};

И тест в shared.test.js

  jest.mock("Dimensions", () => {
    console.log('JEST MOCK USED')
    return {
      get: jest.fn().mockReturnValue({ width: 123, height: 321 }),
      addEventListener: jest.fn()
    }
  });

it("show me the text", () => {
    const testInstance = TestRenderer.create(
      <MyComponent />
    );

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