测试RecyclerView是否包含Espresso数据

Mik*_*keB 6 android ui-automation android-espresso android-recyclerview

我需要写一个测试来点击,让我们说我的RecyclerView中的第一项.在某些情况下,RecyclerView将为空,因此如果我点击带0索引的位置,它将失败.我该如何编写这样的测试?要先检查是否为recyclerView空,然后点击具体位置?

Dmi*_*riy 11

在评论中有一些不同的场景.

让我们实现下一个测试场景:如果recycler视图不包含任何内容,则不执行任何操作.如果Recycler视图至少有一个元素,请单击第一个元素.

@Rule
public final ActivityTestRule<YourActivity> mActivityRule = new ActivityTestRule<>(YourActivity.class);

@Test
public void testSample(){
    if (getRVcount() > 0){
        onView(withId(R.id.our_recycler_view)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
    }
}

private int getRVcount(){
    RecyclerView recyclerView = (RecyclerView) mActivityRule.getActivity().findViewById(R.id.our_recycler_view);
    return recyclerView.getAdapter().getItemCount();
}
Run Code Online (Sandbox Code Playgroud)