Testing RecyclerView if it has data with Espresso
android, android-espresso, android-recyclerview, ui-automation
Solution
There are a little bit different scenarios in question and in the comment.
Let's implement the next test scenario: If recycler view does not contain anything, do nothing. If recycler view has at least one element, click on the first.
@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();
}
Problem
I need to write a test to click, let's say on the first item in my RecyclerView. At some cases the RecyclerView will be empty and therefore if I click on the position with `0` index it will fail. How do I write a test like this? To check first if the `recyclerView` not empty and then click on the specific position?