Próbuję przetestować brak widoku interfejsu użytkownika. Selektor pogląd jest następujący:mecze (not (isDisplayed())) kończy się niepowodzeniem z NoMatchingViewException
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
selektor działa dobrze, aby sprawdzić, czy wyświetlany jest widok, ale daje błąd na sprawdzenie, czy widok nie jest wyświetlany. Używam to 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: No views in hierarchy found matching: with id: is If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:android.widget.ListView{...}
To jest dziwne. Sprawdzam brak interfejsu użytkownika i oczekiwano, że ten widok nie zostanie znaleziony. Więc dlaczego Espresso rzuca błąd? Proszę zasugerować, co może być nie tak.
Dzięki, Zdziwiony!
To nie działa na mnie, ale 'OnView (withId (R.id.myTestId)) zwrotny (mecze (not (isDisplayed())); 'działało. – Sithu
@Sithu - zależy od aplikacji. Jeśli widok, którego szukasz, znajduje się w hierarchii widoku, ale niewidoczny, musisz go użyć (nie jest wyświetlany). Jeśli jednak widoku nie ma w hierarchii widoku, należy użyć metody doesNotExist(). – user846316
Mam przycisk w układzie, ale ustawić widoczność 'View.GONE' w' onCreate' na rolę użytkownika. Czy oznacza to, że znajduje się w hierarchii widoku i jest niewidoczny? – Sithu