其他分享
首页 > 其他分享> > android – 如何使用Espresso测试在Tab Layout中选择特定的Tab位置

android – 如何使用Espresso测试在Tab Layout中选择特定的Tab位置

作者:互联网

我有一个带有视图寻呼机的标签布局.我正在使用Espresso来测试我的Android应用.在我之前的项目中,我使用选项卡标题执行单击以选择选项卡位置,如下所示.

    Espresso.onView(ViewMatchers.withText("MAP"))
            .perform(ViewActions.click());

现在我有114个标签.所以我不能使用上面的方法随机选择这些标签进行测试.有什么方法可以根据它的位置选择标签.我已经检查了其他解决方案,但没有一个帮助我.

解决方法:

应该可以使用自定义ViewAction.像这样的东西:

fun selectTabAtPosition(tabIndex: Int): ViewAction {
    return object : ViewAction {
        override fun getDescription() = "with tab at index $tabIndex"

        override fun getConstraints() = allOf(isDisplayed(), isAssignableFrom(TabLayout::class.java))

        override fun perform(uiController: UiController, view: View) {
            val tabLayout = view as TabLayout
            val tabAtIndex: TabLayout.Tab = tabLayout.getTabAt(tabIndex)
                    ?: throw PerformException.Builder()
                            .withCause(Throwable("No tab at index $tabIndex"))
                            .build()

            tabAtIndex.select()
        }
    }
}

和用法:

onView(withId(R.id.tab_layout)).perform(selectTabAtPosition(99))

标签:android,automated-tests,android-espresso,espresso
来源: https://codeday.me/bug/20190622/1262703.html