Если мне нужно проверить, отображается ли тост, я использую это:
viewWithTextResId(server_error).inRoot(ToastMatcher())
.checkDisplayed()
fun ViewInteraction.checkDisplayed(): ViewInteraction {
return check(matches(isDisplayed()))
}
class ToastMatcher : TypeSafeMatcher<Root>() {
override fun describeTo(description: Description) {
description.appendText("is toast")
}
override fun matchesSafely(root: Root): Boolean {
val type = root.getWindowLayoutParams().get().type
if (type == WindowManager.LayoutParams.TYPE_TOAST) {
val windowToken = root.getDecorView().getWindowToken()
val appToken = root.getDecorView().getApplicationWindowToken()
if (windowToken === appToken) {
return true
}
}
return false
}
}
Отлично, все отлично работает.Но мне нужен тест, который возвращает логическое значение, если toast - show / hide.