Skip to main content

Posts

Showing posts from April, 2015

Discovering Espresso for Android: wading through the hierarchical thicket

The Android Lollipop update brought a hard nut to crack for the testers who use Espresso, represented by RecyclerView. So far the app I'm testing contains this element in couple of places. While I was writing tests for them I found out that it was not so easy and obvious. Thanks to Espresso authors, version 2.0 has the basic RecyclerView actions support which is honestly not enough and is not convenient sometimes. The example of RecyclerView action: import static android.support.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition; . . @Test public void testSomething() { onView(withId(R.id.recycler_view_id)).perform(actionOnItemAtPosition(1, click())); } The activity under test has the following structure - it contains the RecyclerView element which is populated with some data. Let's call it the Feed. Each element in Feed is the Feed Post represented by FrameLayout. Of course every FrameLayout has the same layout elements inside as it's