Per completare la risposta nenick e forniscono e un po 'soluzione più flessibile per verificare anche se l'oggetto è cout GreaterThan, lessThan ...
public class RecyclerViewItemCountAssertion implements ViewAssertion {
private final Matcher<Integer> matcher;
public RecyclerViewItemCountAssertion(int expectedCount) {
this.matcher = is(expectedCount);
}
public RecyclerViewItemCountAssertion(Matcher<Integer> matcher) {
this.matcher = matcher;
}
@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(), matcher);
}
}
Usage :
onView(withId(R.id.recyclerView)).check(new RecyclerViewItemCountAssertion(5));
onView(withId(R.id.recyclerView)).check(new RecyclerViewItemCountAssertion(greaterThan(5));
onView(withId(R.id.recyclerView)).check(new RecyclerViewItemCountAssertion(lessThan(5));
// ...
fonte
2016-09-12 09:12:49
Questo test passa sempre. Non penso che funzioni correttamente. –
adapter.getItemCount() sta arrivando a null..Può farmi sapere il motivo. –
@AdamHurwitz molti hanno confermato che questo lavoro, ma per favore spiega la tua situazione dove passa sempre. – nenick