Ich versuche, das Fehlen der UI-Ansicht zu testen. Die Ansichtsauswahl lautet wie folgt:
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
Der Selektor funktioniert einwandfrei, um zu überprüfen, ob die Ansicht angezeigt wird, gibt jedoch einen Fehler beim Überprüfen, ob die Ansicht nicht angezeigt wird. Ich benutze dies wie folgt:
onMyTestUi().check(matches(not(isDisplayed())));
Aber ich bekomme folgenden Fehler:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: Keine Ansichten in der Hierarchie gefunden, die übereinstimmen: mit id: is Wenn die Zielansicht nicht Teil der Ansichtshierarchie ist, müssen Sie möglicherweise Espresso.onData verwenden, um Laden Sie es von einer der folgenden AdapterViews: android.widget.ListView {...}
Das ist merkwürdig. Ich überprüfe das Fehlen der Benutzeroberfläche und es wird erwartet, dass diese Ansicht nicht gefunden wird. Warum wirft Espresso dann einen Fehler? Bitte schlagen Sie vor, was hier schief gehen könnte.
Danke, erstaunt!
quelle
onView(withId(R.id.myTestId)).check(matches(not(isDisplayed())));
hat funktioniert.View.GONE
inonCreate
auf Benutzerrolle. Bedeutet das also, dass es in der Ansichtshierarchie und unsichtbar ist?Arbeiten Sie auch mit Ihrer Methode, aber so ähnlich:
quelle
quelle
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: View is present in the hierarchy...
Wenn Sie überprüfen möchten, ob
View
entweder nicht sichtbar oder nicht vorhanden ist .Verwendung:
quelle
onView(withId(R.id.someView)).check(isNotDisplayed());
Sie können diese Option ausprobieren, wenn Sie die Sichtbarkeit der Ansicht "withEffectiveVisibility" überprüfen.
quelle