Próbuję przetestować brak widoku interfejsu użytkownika. Selektor widoku jest następujący:
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
Selektor działa dobrze, aby sprawdzić, czy widok jest wyświetlany, ale powoduje błąd podczas sprawdzania, czy widok nie jest wyświetlany. Używam tego w następujący sposób:
onMyTestUi().check(matches(not(isDisplayed())));
Ale pojawia się następujący błąd:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: Brak widoków w hierarchii pasujących: z id: is Jeśli widok docelowy nie jest częścią hierarchii widoków, może być konieczne użycie Espresso.onData do załaduj go z jednego z następujących AdapterViews: android.widget.ListView {...}
To jest dziwne. Sprawdzam brak interfejsu użytkownika i oczekuje się, że ten widok nie zostanie znaleziony. Więc dlaczego Espresso rzuca błąd? Proszę zasugerować, co może być tutaj nie tak.
Dzięki, zdziwiony!
źródło
onView(withId(R.id.myTestId)).check(matches(not(isDisplayed())));
zadziałało.View.GONE
wonCreate
roli użytkownika. Czy to oznacza, że jest w hierarchii widoków i jest niewidoczny?Pracuj również ze swoją metodą, ale coś takiego:
źródło
źródło
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: View is present in the hierarchy...
Jeśli chcesz sprawdzić, czy
View
jest niewidoczny lub nie istnieje .Stosowanie:
źródło
onView(withId(R.id.someView)).check(isNotDisplayed());
Możesz wypróbować tę opcję, jeśli zaznaczysz widoczność widoku „withEffectiveVisibility”
źródło