我正在尝试使用 react-native-testing-library
测试屏幕上的导航事件。
我正在使用 Navigation.events().registerNavigationButtonPressedListener
在我的功能组件中使用以下 Hook 全局监听事件:
const useTopBarBtnPress = function (
componentId: string,
onTopBtnPressed: OnTopBtnPressed) {
useEffect(() => {
const topBtnListener = Navigation.events().registerNavigationButtonPressedListener((event) => {
if (event.componentId === componentId)
onTopBtnPressed(event, BtnIds)
})
return () => topBtnListener.remove()
}, [onTopBtnPressed])
}
是否可以为测试模拟一个 topBar 按钮?我想使用 testID 但我在文档中找不到它。
或者我需要模拟 registerNavigationButtonPressedListener
吗?还是使用排毒?
另外,有没有办法测试布局? (例如图标颜色)
最佳答案
无需实际模拟 TopBar 按钮来测试 navigationButtonPressed
。只需使用模拟按钮按下的正确 NavigationButtonPressedEvent
参数自行调用 navigationButtonPressed
。
关于react-native - 在测试中触发顶部栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63053137/