小编Ahm*_*din的帖子

如何使用 @testing-library/react-native 监视 React Native 中的 TouchableNativeFeedback onPress?

请帮帮我...

我有一个 React Native 自定义 Button 组件,它接收 onPress 属性并将其传递给 TouchableNativeFeedback。我使用 @testing-library/react-native 进行单元测试。我尝试监视 onPress,以检查触摸 TouchableNativeFeedback 时是否会触发它。不知何故,当我模拟按钮上的按下事件时,不会调用间谍函数。我的实现有什么错误吗?

FI:此行为仅发生在 TouchableNativeFeedback 中,但与 Button 完美配合

这是我的实现:

按钮.js

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

export default Button
Run Code Online (Sandbox Code Playgroud)

按钮.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();
  });
Run Code Online (Sandbox Code Playgroud)

unit-testing react-native

5
推荐指数
1
解决办法
1040
查看次数

标签 统计

react-native ×1

unit-testing ×1