android - 用于嵌套 RecyclerView 的 Espresso 匹配器

标签 android android-recyclerview android-espresso ui-testing

所以这是我的层次结构的分割:

RecyclerView --> LinearLayout --> RecyclerView --> FrameLayout -> FrameLayout 

截图如下:

layout

我希望能够验证显示文本的 FrameLayout。这是我到目前为止所尝试的:

onView(withRecyclerView(R.id.container_list).atPositionOnView(0, R.id.row_content))
                .check(matches(withRecyclerView(R.id.row_content).atPositionOnView(0, R.id.info_field)))
                .check(matches(isDisplayed()));

但它会导致 AmbiguousViewMatcherException。关于如何验证嵌套 View 的任何想法?应该提到我正在使用来自 here 的 ViewMatcher .谢谢。

最佳答案

我能够使用上面提供的解释@manidesto 进行一些细微的更改来验证它。

onView(allOf(isDescendantOfA(withRecyclerView(R.id.container_list).atPosition(0)),
                isDescendantOfA(withRecyclerView(R.id.row_content).atPosition(0)),
                withId(R.id.info_field)))
                .check(matches(isDisplayed()));

主要的改进是我使用 allOf 匹配器来指定我试图验证的 View 的多个特征。

关于android - 用于嵌套 RecyclerView 的 Espresso 匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34138945/

相关文章:

android - Facebook API 登录失败,手机上安装了 FB 应用程序

android - RecyclerView 获取点击的item详情 - Android

java - RecyclerView.Adapter 中的函数 viewholder 类

java - onBindViewHolder 无法识别 View 持有者小部件

android - 具有动态宽度的布局 View

android - 如何在将库发布到 android 中的 bintray 时包含依赖项

java - Espresso 嵌套回收器 View UI 测试

android - 使用 Android Espresso 框架模拟用户在系统 Activity 中的点击

android-intent - Android espresso 匹配意图与 bundle 内的 bundle

android - 当onClickListener时,Android App崩溃