Intereting Posts
NPE на Facebook SDK 4.10: попытка вызвать метод интерфейса «java.lang.Object com.facebook.inject.Lazy.get ()» в ссылке на нулевой объект Как создать графический интерфейс в Android вместо использования XML? Эффект капельки материала, спрятанный другим видом в макете Live Video Broadcasting в Android с помощью Wowza Server Почему я не могу найти официальное мобильное приложение Github в магазине Google Play? Проблемы с рендерингом Studio Studio: следующие классы не найдены Как закрыть программный поиск SearchView? Android DownloadManager: как я могу получить заголовки ответов? Переход активности андроида 5 на более низкий api Как создать меню программно в Android? Должен ли android: versionName быть числовым (из формы 0.0.0 и т. Д.)? Как установить OpenCV Manager на эмулятор? Как определить входящий звонок и исходящий вызов в android Еще один «Проект не был построен, так как его путь сборки неполный» Android Viewpager отскакивает на полстраницы

Медленный эспрессо

Это касается эспрессо. Я успешно выполняю интеграционный тест на симуляторе. Я думаю, что некоторые тесты терпят неудачу, потому что они работают слишком быстро. Есть ли способ замедлить выполнение / воспроизведение speeD?

Невозможно, чтобы тест не помог ускорить. Espresso может синхронизировать все тестовые операции с тестируемым приложением. По умолчанию Espresso ждет событий пользовательского интерфейса в текущей очереди сообщений для обработки и по умолчанию AsyncTasks для завершения, прежде чем перейти к следующей тестовой операции. Однако, если этого недостаточно для вашего приложения, вы можете сказать эспрессо, когда он простаивает, а когда нет. Для этого вам необходимо:

  • Внедрите интерфейс IdlingResource .
  • Зарегистрируйте один или несколько ваших IdlingResource (s) с помощью Espresso, вызвав Espresso.registerIdlingResource в тестовой настройке.

Если вам нужна дополнительная помощь, спросите меня!

Ха-ха … на самом деле эспрессо работает именно так. Проблема, с которой вы сталкиваетесь, заключается в том, что события пользовательского интерфейса не могут быть завершены (например, нажатие элемента списка перед загрузкой списка из сетевого вызова). В этом случае, когда ваши ресурсы загружаются из другого потока, вы можете фактически выполнить Thread.sleep (millis) или более эффективно метод loopMainThreadForAtleast (миллис) UiController для ожидания something to load (для завершения события).

Когда вы регистрируете тест эспрессо в Android Studio, он автоматически добавляет операторы Sleep к тестам, когда есть взаимодействие просмотра для обработки задержки. Это подход, который создается вместе с комментариями:

 // Added a sleep statement to match the app's execution delay. // The recommended way to handle such scenarios is to use Espresso idling resources: // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html try { Thread.sleep(700); } catch (InterruptedException e) { e.printStackTrace(); } 

Ссылка на документы

У меня тоже была эта пробема. Я решил удалить анимацию активности на своем устройстве из опций разработчика.

Если ваша проблема все еще существует, вы можете использовать sleep в своем тесте, чтобы замедлить работу.

 SystemClock.sleep(1000); 

Введите описание изображения здесь