如果recyclerView本身返回AmbiguousViewMatcherException,那么在Espresso中做什么?
问题是我有一个选项卡式的视图,每个页面包含相同的recyclerView与不同的数据属于该选项卡。 如果我没有描述得太好,它基本上与本教程中描述的相同: https : //github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter
我正在使用Espresso创建仪器测试,当我尝试打电话时
onView(withId(R.id.recycler_view)
与RecyclerViewAction一起使用,我返回了AmbiguousViewMatcher,告诉我在层次结构中有多个recyclerView。 我怎样才能指定一个特定的recyclerView? 我假设我需要某种“customRecyclerViewMatcher”
好! 所以首先我需要给每个视图一个标签(请参阅petey的答案: 如何在Android中使用Espresso抓取标签的视图? )
我发现onCreate并补充说:
recyclerView.setTag(screenTab.getId())
这使我能够在我的测试类中设置这个(我正在使用Kotlin)
private val tab1RecyclerView = onView( allOf( withId(R.id.recycler_view), withTagValue(`is`(Id.tab1)) ) )
所以我的测试开始是这样的:
@Test fun tab1Test() { tab1RecyclerView.perform(RecyclerViewActions.actionOnItemAtPosition... etc }