Я запускаю тесты Espresso в своем приложении для Android. Тест чешуйчатый. Он может надежно утверждать, что модель данных обновлена. Моя проблема в том, что ViewMatchers не могут совпадать с одним и тем же значением в представлении, потому что ViewDataBinding еще не обновил Views. (По крайней мере, большую часть времени проходит тест.)Как заставить Espresso ждать, пока Data Binding обновит представление с помощью модели данных?
Есть ли такая вещь, как IdlingResource, которая перестает работать, когда ViewDataBinding не имеет ожидающих изменений в представлении?
Моя работа вокруг представляет собой сочетание вызова executePendingBindings() и небольшой Thread.sleep (...)
'executePendingBindings' должно быть достаточно: связывание будет выполняться сразу при вызове этого метода, а не во время следующего кадра' Choreographer' – pskink
Это была моя первоначальная мысль. Но, оказывается, тестовые прогоны в потоке AndroidJUnit и executePendingBindings должны выполняться на MainThread. Планирование его на Main не является быстрым или достаточно блокирующим для неудачного утверждения в потоке AndroidJUnit. – Rene
Вы нашли решение? У меня есть аналогичная проблема, когда во время эспрессо-тестов неверные значения передаются в привязку данных, но если я добавлю точку останова и дождаюсь момента, она отправит правильные значения, представления будут правильно привязаны, а эспрессо найдет вид –