Intereting Posts
Таблица SQLite с целыми столбцами хранит строку Как найти контуры кадра с камеры Android и преобразовать их в тела box2d? Возвращаемое значение API KnoxVpnUidStorageknoxVpnSupported является ложной ошибкой при использовании Parse api Как сохранить целочисленный массив в SharedPreferences? Android: Как начать работу через кнопку? Android: получите уникальный идентификатор уведомления Обработка сеансов в Google App Engine с помощью Android / IPhone Обнаружение присутствия FPU на Android Не удалось найти местоположение Android SDK для настройки предпочтения Eclipse Является ли отражение необходимым, если я использую «if (android.os.Build.VERSION.SDK_INT> = 11)» Публикация приложения в PlayStore как организации? Как сделать его единственным пейзажем для планшетов и только портрет для телефонов? Android-камера: нитки? Что должно делать то, что Типичный файл .gitignore для Android-приложения Библиотеки обработки видео и фильтрации

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

Это касается эспрессо. Я успешно выполняю интеграционный тест на симуляторе. Я думаю, что некоторые тесты терпят неудачу, потому что они работают слишком быстро. Есть ли способ замедлить выполнение / воспроизведение 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); 

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