Я пытаюсь проверить отсутствие представления пользовательского интерфейса. Селектор представления выглядит следующим образом:
public static ViewInteraction onMyTestUi() {
return onView(withId(R.id.myTestId));
}
Селектор отлично работает, чтобы проверить, отображается ли представление, но выдает ошибку при проверке, если представление не отображается. Я использую это следующим образом:
onMyTestUi().check(matches(not(isDisplayed())));
Но я получаю следующую ошибку:
com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: не найдено представлений в иерархии, соответствующих: с id: is Если целевое представление не является частью иерархии представлений, вам может потребоваться использовать Espresso.onData для загрузить его из одного из следующих AdapterViews: android.widget.ListView {...}
Это странно. Я проверяю отсутствие пользовательского интерфейса и ожидаю, что это представление не будет найдено. Тогда почему эспрессо выдает ошибку? Пожалуйста, подскажите, что здесь может быть не так.
Спасибо, удивлен!
источник
onView(withId(R.id.myTestId)).check(matches(not(isDisplayed())));
сработало.View.GONE
вonCreate
на роли пользователя. Итак, означает ли это, что он находится в иерархии представлений и невидим?Также работайте с вашим методом, но примерно так:
источник
источник
android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: View is present in the hierarchy...
Если вы хотите , чтобы проверить,
View
либо не видна или не существует .Применение:
источник
onView(withId(R.id.someView)).check(isNotDisplayed());
Вы можете попробовать эту опцию, если проверите видимость представления "withEffectiveVisibility"
источник