#react-native #jestjs #react-native-reanimated #react-native-testing-library
#react-native #jestjs #react-native-reanimated #react-native-testing-library
Вопрос:
В настоящее время я пытаюсь выяснить, как протестировать анимацию reanimated 2 с использованием useSharedValue.
Для меня имеет смысл 0, так это пример, приведенный в reanimated .
https://github.com/software-mansion/react-native-reanimated/blob/master/tests/SharedValue.test.js
Если предполагается, что кнопка увеличивает свое общее значение на 1 каждый раз, когда вы ее нажимаете. Зачем вам писать тест, который показывает, что он НЕ меняется???
Я пробовал это сам, и да, значение не обновляется само по себе.
Я хочу утверждать, что значение изменилось в моем тесте:
Параллаксскролл-просмотр.tsx
const scrollY = useSharedValue(0);
const onScroll = useAnimatedScrollHandler((event) => {
scrollY.value = event.contentOffset.y;
});
return (
<Animated.Image
style={{height: scrollY}}
testID="header-image"
source={{ uri: headerImage }}
resizeMode="cover"
/>
)
ParallaxScrollView.test.tsx
const { getByTestId } = render(<ParallaxScrollView {...defaultProps} />);
const headerImage = getByTestId('header-image');
const content = getByTestId('parallax-content');
const eventData = {
nativeEvent: {
contentOffset: {
y: 100,
},
},
};
fireEvent.scroll(content, eventData);
expect(headerImage).toHaveAnimatedStyle({ height: 100 }); //Received is 0
Ответ №1:
useAnimatedScrollHandler
используется react-native-gesture-handler
для обработки событий, но на данный момент обработчик жестов еще не поддерживает события в тестах, это то, над чем я работаю. Посмотрите на это — https://github.com/software-mansion/react-native-gesture-handler/pull/1762
Я думаю, что это будет доступно в ближайшее время. Если вы хотите быть в курсе последних событий, пожалуйста, откройте выпуск в реанимированном Github.