我有一个渲染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);
状态,以便我可以测试该分支?
答案 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
状态下会发生什么。