TGW является профессионалом в разработке и решении систем управления парковкой.

Тестирование намерений камеры и галереи с помощью 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

Свяжись с нами
Рекомендуемые статьи
Чехлы
нет данных
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