import android.support.test.espresso.NoMatchingViewException; import android.support.test.espresso.ViewAssertion; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; public class RecyclerViewAssertions implements ViewAssertion { private int mExpectedPos; public RecyclerViewAssertions(int expectedPos) { this.mExpectedPos = expectedPos; } @Override public void check(View view, NoMatchingViewException e) { RecyclerView recyclerView = (RecyclerView) view; LinearLayoutManager layoutManager = ((LinearLayoutManager)recyclerView.getLayoutManager()); int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition(); if(firstVisiblePosition != mExpectedPos) throw new RuntimeException("Wrong position! Expected: " + mExpectedPos + " but was: " + firstVisiblePosition); } }