测试Pressable的按下状态

时间:2020-10-20 20:36:21

标签: react-native jestjs react-testing-library

我有一个渲染React Native my_function并使用Pressable状态更改显示的组件:

pressed

这正常工作,但是当我运行测试覆盖率报告时,将跳过<Pressable testID="t"> {({ pressed }) => <Text style={pressed ? pressedStyle : unPressedStyle }>{title}</Text> <Pressable> 状态。即使我在可按压对象上触发pressed事件,也会发生这种情况,例如:

press

在测试过程中是否可以触发const { getByTestID } = render(<PressableComponent />); const pressable = getByTestID('t'); fireEvent.press(pressable); 状态,以便我可以测试该分支?

1 个答案:

答案 0 :(得分:4)

您可以使用 RN Pressable 组件的 testOnly_pressed 属性。如果设置为 true,它将模拟测试中的按下状态。

<Pressable testID="t" testOnly_pressed={isStatusPressedForTest}>
  {({ pressed }) => <Text style={pressed ? pressedStyle : unPressedStyle }>{title}</Text>
<Pressable>


const { getByTestID } = render(<PressableComponent isStatusPressedForTest />);

那时不再需要触发新闻事件。 期待您在 pressed 状态下会发生什么。