Espresso + RecyclerView - 如何等待所有视图准备好?

时间:2016-06-27 20:30:17

标签: android android-espresso

我尝试使用Espresso来测试我的应用程序。我正在测试的一个流程显示RecyclerView,显示随机数量的ViewHolder个对象。对于我的测试,我试图点击具有文本"测试"的特定ViewHolder。以标题TextView显示。

我使用以下代码点击相应的ViewHolder

onView((withId(R.id.recycler_view))).perform(actionOnHolderItem(CustomMatcher.withName(name), click()));

CustomMatcher.withName的位置:

public static Matcher<RecyclerView.ViewHolder> withName(final String name)
{
    return new BoundedMatcher<RecyclerView.ViewHolder, CustomAdapter.VHItem>(CustomAdapter.VHItem.class)
    {
        @Override
        protected boolean matchesSafely(CustomAdapter.VHItem viewHolder)
        {
            return viewHolder.title.getText().toString().equalsIgnoreCase(name);
        }

        @Override
        public void describeTo(Description description)
        {
            description.appendText("view holder with name: " + name);
        }
    };
}

这似乎很有用,因为没有找到匹配Espresso的{​​{1}}错误,或者找不到被搜索的ViewHolder等。

但是,大约10-15%的时间,实际上从未选择RecyclerView。这意味着找到了视图,但未发生ViewHolder操作。我已确认未通过登录ViewHolder的click方法点击该视图,如下所示:

我的onClick类绑定如下:

VHItem

所以基本上找到视图,滚动到等等但未选中!任何帮助表示赞赏!

谢谢, 扎克

0 个答案:

没有答案