请帮帮我...
我有一个 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 ButtonRun 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)