Дразнящий ведущий вызывает сбой интеграционного теста
Недавно я начал охватывать свой проект интеграционными тестами, где mockito предоставляет экземпляры презентатора, чтобы проверить, правильно ли мои представления вызывают методы презентатора во время их событий.
Вопрос был на экране, который имеет невидимый ProgressBar
а также RecyclerView
, Ведущий этого экрана загружал данные для этого RecyclerView
и контроль видимости ProgressBar
, Когда я заменил его на mock (использовал Mockito), через некоторое время соответствующие тесты полностью застряли с ошибкой:
Could not launch intent Intent { act=android.intent.action.MAIN flg=0x14000000
cmp=com.example.kinopoisk/com.example.mvp.view.activity.MainActivity } within 45 seconds.
Perhaps the main thread has not gone idle within a reasonable amount of time?
There could be an animation or something constantly repainting the screen.
Or the activity is doing network calls on creation? See the threaddump logs.
For your reference the last time the event queue was idle before your activity launch request
was 1476191336691 and now the last time the queue went idle was: 1476191336691.
If these numbers are the same your activity might be hogging the event queue
Но активность успешно выполнялась и была доступна для всех пользовательских событий, таких как клики и т. Д.
Как вы думаете, в чем причина проблемы?
Это д
1 ответ
Объяснение в этой строке кода ошибки: может быть анимация или что-то постоянно перекрашивающее экран.
Когда я заменил докладчика на mockito, он также перестал контролировать индикатор выполнения. Начальное состояние было View.VISIBLE
, так что это было причиной теста, чтобы не удалось подключиться.
Решением было просто установить начальное состояние ProgressBar
в View.GONE
, но обнаружил, что это немного головная боль для меня.