层次结构中找不到匹配的视图:可从类中分配:class android.widget.AdapterView

时间:2017-08-19 09:56:03

标签: unit-testing android-recyclerview android-espresso recycler-adapter

我正在尝试使用onData获取循环视图,但我遇到了这个错误:

  

层次结构中找不到匹配的视图:可从类:class中分配   android.widget.AdapterView

代码就是这样:

onData(allOf(isAssignableFrom(RecyclerView.class), withId(R.id.ce_musers_list)))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)));

我的适配器扩展RecyclerView.Adapter,因为它应该用于RecycleView,然而,接缝匹配器正在寻找一个简单的适配器。 这是我第一次使用espress,所以我可能会失败一些基本的东西。

我的Espresso版本是3.0.0

2 个答案:

答案 0 :(得分:11)

onData()仅用于AdapterView及其子类,RecyclerView不属于它们。

espresso附带了一个帮助程序类:RecyclerViewActions可用于对Recyclerview和viewholder项目视图执行各种操作。

例如,如果你想做一个断言 - 你可以滚动到项目视图,然后使用常规onView()...来查看该视图持有者的详细信息。

答案 1 :(得分:1)

    val recyclerView = onView(
        allOf(
            withId(R.id.myRecyclerView),
            childAtPosition(
                withClassName(`is`("androidx.constraintlayout.widget.ConstraintLayout")),
                0
            )
        )
    )
    recyclerView.perform(actionOnItemAtPosition<ViewHolder>(1, click()))