Как я могу шпионить за TouchableNativeFeedback onPress в React Native с помощью @ testing-library / Reaction-native? - PullRequest
0 голосов
/ 23 октября 2019

Помогите мне, пожалуйста ...

У меня есть пользовательский компонент React Native, который получает реквизит onPress и передает его onPress в TouchableNativeFeedback. Я делаю юнит-тестирование с помощью @ testing-library / Reaction-native. Я пытаюсь шпионить за OnPress, чтобы проверить, срабатывает ли он при касании TouchableNativeFeedback. Каким-то образом шпионская функция не вызывается, когда я имитирую событие нажатия на кнопку. Есть ли какая-либо ошибка в моей реализации?

FI: Это происходит только в TouchableNativeFeedback, но отлично работает с Button

Вот моя реализация:

Button.js

const Button = ({onPress, label}) => (
  <TouchableNativeFeedback onPress={onPress} testID="button">
    <View style={someStyling}>
      <Text>{label}</Text>
    </View>
  </TouchableNativeFeedback>
)

export default Button

Button.test.js

  it("Fire onPress props when button pressed", () => {
    const mockFn = jest.fn();

    const { getByTestId } = render(<Button onPress={mockFn} />);
    const button = getByTestId("button");
    
    fireEvent.press(button);
    
    expect(mockFn).toHaveBeenCalled();
  });
...