Это примерно 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();
});