loading

Тестирование намерений камеры и галереи с помощью Espresso

Если в вашем приложении для Android есть экраны с функциями камеры и/или галереи с некоторыми изменениями экрана (представления, метки или кнопки, которые появляются/исчезают и т. д.), и вам нужно написать несколько тестов Espresso для этих функций/экранов, есть пара помощников, которые я использовал, и я хочу поделиться со всеми вами. Предоставление разрешений Когда вы используете камеру в своем приложении, вам необходимо предоставить некоторые разрешения на устройстве, чтобы читать / хранить фотографии. Эти разрешения запрашиваются во время выполнения и обычно связаны с READ_EXTERNAL_STORAGE и WRITE_EXTERNAL_STORAGE.

Тестирование намерений камеры и галереи с помощью Espresso 1

Таким образом, GrantPermissionRule позволяет предоставлять разрешения во время выполнения на Android M (API 23) и выше, и при применении к тестовому классу это правило пытается предоставить все запрошенные разрешения во время выполнения. @get:Rulevar mRuntimePermissionRule = GrantPermissionRule.grant(android.

Manifest.permission.WRITE_EXTERNAL_STORAGE) Это правило обычно используется для предоставления разрешений во время выполнения, чтобы избежать появления диалогового окна разрешений и блокировки пользовательского интерфейса приложений, и согласно официальной документации: согласно этому правилу автоматически предоставляется READ_EXTERNAL_STORAGE, когда запрашивается WRITE_EXTERNAL_STORAGE. Галерея ТестКод для test, когда в приложении щелкают значок галереи, затем изображение выбирается и отображается на экране: во-первых, у меня есть вспомогательный метод (CameraAndGallery.

savePickedImage), который сначала сохраняет изображение (для краткости значок ic_launcher), которое будет использоваться в тесте в качестве локального файла, видимого для теста: Параметр активности берется из ActivityTestRule:@get:Rulevar mActivityTestRule = IntentsTestRule(MyActivity: :class.java) Затем я создаю объект ActivityResult (например, макет, но для намерения Android), который будет использоваться средством сопоставления намерений Espresso (для сопоставления и проверки исходящих намерений): val imgGalleryResult = CameraAndGallery.createImageGallerySetResultStub(mActivityTestRule.

Activity) намереваясь (hasAction (Intent.ACTION_CHOOSER)). RespondWith (imgGalleryResult) Секрет здесь в том, чтобы запросить файл, ранее сохраненный и, наконец, использованный в качестве результата.

Тестирование намерений камеры и галереи с помощью Espresso 2

Примечание. Чтобы работать с намерениями эспрессо, мы должны добавить эту зависимость в сборку приложений. файл градиента: androidTestImplementation androidx.test.

espresso:espresso-intents:$espressoVersionДля теста, который мы пишем, давайте предположим, что изображение, выбранное из галереи, мы устанавливаем его в ImageView, который виден пользователю, затем заключительная часть теста заключается в проверке того, что отображается изображение (метод hasImageSet()):onView(withId(R.id.auctionphotos_bigimage_viewer)).

check(matches(hasImageSet()))Camera TestПохоже на Gallery Test, тест на получение изображения с камеры устройства проходит почти те же шаги, но в этом случае изображение не нужно предварительно сохранять, а только имитировать результат камера: результат имитации захвата выглядит следующим образом: результирующее изображение будет получено намерением: намерение (hasAction (MediaStore. ACTION_IMAGE_CAPTURE)). responseWith(imgCaptureResult) И с помощью этого мы можем проверить, было ли изображение снято и отображено: onView(withId(R.

id.auctionphotos_bigimage_viewer)).check(matches(hasImageSet())) Наконец, если вы хотите изучить немного больше информации о тестах эспрессо и намерениях, вы можете взглянуть на этот репозиторий от официальной команды Android

Свяжись с нами
Рекомендуемые статьи
Чехлы
Введение в систему интеллектуальной парковки. Система интеллектуальной парковки — это электрическое устройство, которое предоставляет удобочитаемую информацию, помогающую людям ориентироваться в пути.
Управление автостоянкойОпределение управления автостоянкой - это практика управления автостоянками и их территориями для достижения цели обеспечения
Как использовать систему парковки автомобилей anpr? Система парковки стала популярным способом обеспечения бесперебойной работы вашего бизнеса. Преимущество парковочной системы в том, что она может
Почему решения для парковки anpr? Когда вы паркуете свой автомобиль на решениях для парковки anpr, вы обычно пользуетесь многими преимуществами решений для парковки anpr. Это
Что такое парковочные системы Anpr? Парковочные системы Anpr предназначены для того, чтобы людям было проще парковать свои автомобили в городе. Система использует датчики для измерения ди
Что такое парковка укладчика? Я застрял в пробке. Я должен парковать свою машину тут и там. Есть так много мест, чтобы припарковать мою машину. Что вы делаете? Ты просто паркуешься?
Как работает автоматизированная система управления парковкой? Есть так много вещей, которые вы можете сделать, чтобы улучшить качество своей жизни. И когда вы сделали все, что вы
Введение в автомат для парковки Трудно дать четкое описание того же самого. Многие люди используют один и тот же формат, что облегчает понимание
Что такое парковка укладчика автомобилей? Я должен использовать свой смартфон при использовании Интернета. При использовании Интернета легко отвлечься на то, что происходит вокруг меня
Внедрение интеллектуальной системы управления парковкойУмная система управления парковкой — это интеллектуальный способ уменьшить ваши счета за электроэнергию и помочь вам сохранить ваш автомобиль в рабочем состоянии.
нет данных
Shenzhen Tiger Wong Technology Co., Ltd является ведущим поставщиком решений для управления доступом для интеллектуальной системы парковки транспортных средств, системы распознавания номерных знаков, турникета контроля доступа для пешеходов, терминалов распознавания лиц и Решения для парковки LPR .
нет данных
CONTACT US

Шэньчжэнь TigerWong Technology Co.,Ltd

Тел:86 13717037584

Электронная почта: info@sztigerwong.com

Добавить: 1-й этаж, здание А2, Индустриальный парк Silicon Valley Power Digital, № 1. улица Дафу, 22, улица Гуанлан, район Лунхуа,

Шэньчжэнь, провинция Гуандун, Китай  

                    

Авторское право©2021 Шэньчжэнь TigerWong Technology Co.,Ltd  | Карта сайта
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
Отмена
Customer service
detect