nenick Antwort und bieten und wenig flexiblere Lösung vervollständigen auch zu testen, ob Artikel cout ist 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);
}
}
Nutzungs :
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));
// ...
Dieser Test immer passiert. Ich glaube nicht, dass es richtig funktioniert. –
adapter.getItemCount() kommt null..Kann uns den Grund dafür wissen lassen. –
@AdamHurwitz viele haben bestätigt, dass dies funktioniert, aber bitte erläutern Sie Ihre Situation, wo es immer passieren. – nenick