【问题标题】:What to do in Espresso when the recyclerView itself returns AmbiguousViewMatcherException?当 recyclerView 本身返回 AmbiguousViewMatcherException 时,在 Espresso 中该怎么办?
【发布时间】:2017-08-22 14:31:56
【问题描述】:

问题是我有一个选项卡式视图,并且每个页面都包含相同的 recyclerView 以及与该选项卡相关的不同数据。如果我描述的不是很好,它与本教程中描述的基本相同:https://github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter

我正在使用 Espresso 创建仪器测试,当我尝试调用时

onView(withId(R.id.recycler_view)

要与 RecyclerViewAction 一起使用,我会返回 AmbiguousViewMatcher,告诉我层次结构中有多个 recyclerView。如何指定特定的 recyclerView?我假设我需要某种“customRecyclerViewMatcher”

【问题讨论】:

标签: java android automated-tests kotlin android-espresso


【解决方案1】:

好的!所以首先我需要给每个视图一个标签 (请参阅 petey 对How to catch a View with Tag by Espresso in Android? 的回答)

我找到了 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多