我可以使用查看操作来执行单个列表项的点击
time
但是,我想返回列表项的数量,并使用循环点击每个列表项而不为每个项目单独编写代码。
如何返回Recycler视图包含的列表项数?也许我需要通过活动直接访问适配器变量?
由于
答案 0 :(得分:0)
我会将依赖关系存根,以便您可以控制您的测试环境,即如果您输入3个项目,则应该会显示三个项目。您可以使用nenick How to count RecyclerView items with Espresso
的自定义操作进行检查public class CustomRecyclerViewAssertions {
//Asserts the number of items in a RecyclerView
public static ViewAssertion AssertItemCount(final int expectedCount) {
return new ViewAssertion() {
@Override
public void check(View view, NoMatchingViewException noViewFoundException) {
if (noViewFoundException != null) {
throw noViewFoundException;
}
RecyclerView recyclerView = (RecyclerView) view;
RecyclerView.Adapter adapter = recyclerView.getAdapter();
assertThat(adapter.getItemCount(), is(expectedCount));
}
};
}
}
使用
调用onView(withId(R.id.recyclerView)).check(new RecyclerViewItemCountAssertion(3));
一旦你知道有多少物品,你可以使用:
onView(withId(R.id.recyclerView)).perform(
actionOnItemAtPosition<RecyclerView.ViewHolder>(1, click()))
由于recyclerView显示了同一视图的多个实例,因此我不会浪费时间重复代码来点击每个项目