Как проверить, что всплывающее уведомление НЕ отображается. Эспрессо - PullRequest
0 голосов
/ 09 января 2019

У меня всплывающее уведомление. Мой первый тест проверяет, отображается ли это уведомление и прошло ли оно успешно. Я использую следующий метод для этого теста:

fun viewInNotificationPopupIsDisplayed(viewMatcher: Matcher<View>) {
    onView(viewMatcher)
        .inRoot(RootMatchers.isPlatformPopup())
        .check(ViewAssertions.matches(isDisplayed()))
}

У меня проблема со вторым тестовым примером, когда я должен проверить, что мое всплывающее уведомление уже прошло (значит, оно больше не отображается). Поэтому я пытаюсь использовать следующий метод:

    fun viewInNotificationPopupIsNotDisplayed(viewMatcher: Matcher<View>) {
        Espresso.onView(viewMatcher)
            .inRoot(RootMatchers.isPlatformPopup())
            .check(matches(not(isDisplayed())))
          //.check(ViewAssertions.doesNotExist())  // doesn't work as well
    }

Я получаю следующее исключение:

android.support.test.espresso.NoMatchingRootException: 
Matcher 'with decor view of type PopupWindow$PopupViewContainer' 
did not match any of the following roots: 
[Root{application-window-token=android.view.ViewRootImpl$W@bb8371e,
 window-token=android.view.ViewRootImpl$W@bb8371e, has-window-focus=true, 

Пожалуйста, кто-нибудь может помочь с этим?

...