我有一个自定义的viewpager(由于某些原因禁用了滑动),并与一个tablayout一起工作。内容根据选定的选项卡而改变。我想使用espresso进行测试: 1)单击特定选项卡 2)在选项卡的特定页面中检查某些数据 我该怎么做。我是espresso的新手
我有一个自定义的viewpager(由于某些原因禁用了滑动),并与一个tablayout一起工作。内容根据选定的选项卡而改变。我想使用espresso进行测试: 1)单击特定选项卡 2)在选项卡的特定页面中检查某些数据 我该怎么做。我是espresso的新手
有几种方法可以做到这一点,其中一个简单的方法是通过选定标签标题选择元素,我使用以下代码:
Matcher<View> matcher = allOf(withText("TAB TITLE"),
isDescendantOfA(withId(R.id.customTab)));
onView(matcher).perform(click());
SystemClock.sleep(800); // Wait a little until the content is loaded
你只需要将匹配器适应你的布局,然后检查内容。
例如:
onView(withId(R.id.someId)).check(matches(isCompletelyDisplayed()));
或者:onView(withText(R.string.someText)).check(matches(isCompletelyDisplayed()));
你可以在指定视图匹配器部分的这里找到示例。
如果你正在使用RecyclerView显示选项卡中的内容,请看一下这个:Espresso RecyclerView inside ViewPager
当您清楚知道 UI 中期望的内容并且可以验证相同内容时,应使用 Espresso。
在您的情况下,要转到任何选项卡,可以使用视图操作来点击该选项卡。 要验证数据,首先应了解该选项卡上期望存在哪些数据,然后只需使用匹配器来检查它们是否已显示。
withId
、withTagValue
或创建自定义匹配器,而不是withText
。 - jeprubiowithTagValue
:onView(withTagValue(is((Object) tagValueString)))
,使用Matcher.is
方法来查找具有该标记的视图。 - jeprubio