【问题标题】:Trigger Topbar buttons in test在测试中触发 Topbar 按钮
【发布时间】:2020-07-23 11:27:24
【问题描述】:

我正在尝试使用 react-native-testing-library 在屏幕上测试导航事件。

我正在使用 Navigation.events().registerNavigationButtonPressedListener 在我的功能组件中使用以下钩子来监听全局事件:

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 ?还是使用排毒?

另外,有没有办法测试布局? (例如。图标颜色)

【问题讨论】:

    标签: react-native react-native-navigation


    【解决方案1】:

    没有必要实际模拟 TopBar 按钮来测试 navigationButtonPressed。只需使用正确的NavigationButtonPressedEvent 参数自己调用navigationButtonPressed 即可模拟按钮按下。

    【讨论】:

    • 如果我使用Navigation.events().registerNavigationButtonPressedListener 来调用事件,我该怎么办(相应地编辑了我的问题)?
    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多