Закусочная и эспрессо иногда

Как говорится в названии, это терпит неудачу несколько раз, некоторые другие – успех.

android.support.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'is displayed on the screen to the user' doesn't match the selected view. Expected: is displayed on the screen to the user Got: "AppCompatTextView{id=2131492981, res-name=snackbar_text, visibility=VISIBLE, width=444, height=71, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=18.0, y=0.0, text=Network Error, input-type=0, ime-target=false, has-links=false}" 

Первая строка трассировки стека показывает, что эспрессо не может видеть Snackbar на экране. Но во второй строке говорится, что на самом деле это выглядит как Snackbar с visibility=VISIBLE и text=Network Error .

Я в замешательстве, что происходит?

Это мой тестовый код:

 activityRule.launchActivity(new Intent()); onView(withText("Network Error")).check(matches(isDisplayed())); 

PS: в основном это не удается, когда я запускаю весь тестовый костюм; Но иногда это также терпит неудачу, когда я просто запускаю этот тест самостоятельно. В некоторых других случаях он проходит зеленый, но нет никакого шаблона, кажется случайным.

Поздно! Но я надеюсь, что это полезно для других:

Тестирование шоу с закусками с эспрессо

 private void checkSnackBarDisplayedByMessage(@StringRes int message) { onView(withText(message)) .check(matches(withEffectiveVisibility( ViewMatchers.Visibility.VISIBLE ))); } 

У меня была аналогичная проблема. Я смог решить это:

  1. Демонтаж анимаций, как описано здесь .

  2. Я отобразил SnackBar после того, как я извлек данные с сервера, поэтому мне также пришлось ждать, пока данные не будут получены. Мне удалось решить проблему с IdlingResource, как описано в этом андерсе.

Затем я смог успешно проверить SnackBar.

Надеюсь, мои очки помогут.