loading

TGW est professionnel dans la conception et la solution du système de gestion du stationnement

Tester les intentions de l'appareil photo et de la galerie avec Espresso

Lorsque vous avez des écrans dans votre application Android qui ont des fonctionnalités d'appareil photo et/ou de galerie avec quelques changements d'écran (vues, étiquettes ou boutons qui apparaissent/disparaissent, etc.) et que vous devez écrire des tests Espresso pour ces fonctionnalités/écrans, il y a quelques des aides que j'ai utilisées et que je veux partager avec vous tous. Accorder des autorisations Lorsque vous utilisez l'appareil photo dans votre application, vous devez accorder certaines autorisations dans l'appareil afin de lire/stocker une photo. Ces autorisations sont demandées lors de l'exécution et sont généralement liées à READ_EXTERNAL_STORAGE et WRITE_EXTERNAL_STORAGE.

Tester les intentions de l'appareil photo et de la galerie avec Espresso 1

Ainsi, la GrantPermissionRule permet d'accorder des autorisations d'exécution sur Android M (API 23) et supérieur et lorsqu'elle est appliquée à une classe de test, cette règle tente d'accorder toutes les autorisations d'exécution demandées.@get:Rulevar mRuntimePermissionRule = GrantPermissionRule.grant(android.

Manifest.permission.WRITE_EXTERNAL_STORAGE) Cette règle est généralement utilisée pour accorder des autorisations d'exécution afin d'éviter que la boîte de dialogue d'autorisation ne s'affiche et ne bloque l'interface utilisateur des applications, et selon la documentation officielle : selon cette règle, elle accordera automatiquement READ_EXTERNAL_STORAGE lorsque WRITE_EXTERNAL_STORAGE est demandé. tester lorsqu'une icône de galerie est cliquée dans l'application, puis une image est sélectionnée et affichée à l'écran : la première chose ici est que j'ai une méthode d'assistance (CameraAndGallery.

savePickedImage) qui enregistre d'abord une image (par souci de brièveté l'icône ic_launcher) qui va être utilisée dans le test en tant que fichier local visible pour le test : :class.java)Ensuite, je crée un objet ActivityResult (comme une maquette mais pour Android Intent) qui sera utilisé par le matcher Espresso Intents (pour faire correspondre et valider les intentions sortantes):val imgGalleryResult = CameraAndGallery.createImageGallerySetResultStub(mActivityTestRule.

activity) intentioning(hasAction(Intent.ACTION_CHOOSER)).respondWith(imgGalleryResult)Le secret ici est de demander le fichier précédemment enregistré et finalement utilisé comme résultat.

Tester les intentions de l'appareil photo et de la galerie avec Espresso 2

Remarque : Pour travailler avec des intentions expresso, nous devons ajouter cette dépendance à la construction des applications. fichier gradle : androidTestImplementation androidx.test.

espresso:espresso-intents:$espressoVersionPour le test que nous écrivons, supposons que l'image sélectionnée dans la galerie, nous la plaçons dans une ImageView visible pour l'utilisateur, puis la dernière partie du test consiste à vérifier que le l'image est affichée (méthode hasImageSet()):onView(withId(R.id.auctionphotos_bigimage_viewer)).

check(matches(hasImageSet()))Camera TestSimilar to Gallery Test, le test pour obtenir une image de l'appareil Camera suit presque les mêmes étapes, mais dans ce cas, une image n'a pas besoin d'être enregistrée avant, seulement se moquer du résultat de la caméra : le résultat de la capture simulée est le suivant : l'image résultante va être prise par l'intention : intention (hasAction (MediaStore. ACTION_IMAGE_CAPTURE)). respondWith(imgCaptureResult)Et avec cela, nous pouvons vérifier si l'image a été prise et affichée :onView(withId(R.

id.auctionphotos_bigimage_viewer)).check(matches(hasImageSet()))Enfin, si vous souhaitez explorer un peu plus de contenu concernant les tests Espresso et les intentions, vous voudrez peut-être jeter un œil à ce repo de l'équipe Android officielle

Prenez contact avec nous
Articles recommandés
Cas
pas de données
Shenzhen Tiger Wong Technology Co., Ltd est le principal fournisseur de solutions de contrôle d'accès pour le système de stationnement intelligent des véhicules, le système de reconnaissance de plaque d'immatriculation, le tourniquet de contrôle d'accès des piétons, les terminaux de reconnaissance faciale et Solutions de stationnement LPR .
pas de données
CONTACT US

Technologie Cie., Ltd de Shenzhen TigerWong

Tel:86 13717037584

E-mail: info@sztigerwong.com

Ajouter : 1er étage, bâtiment A2, parc industriel numérique de Silicon Valley Power, No. 22 route Dafu, rue Guanlan, district de Longhua,

Shenzhen, province du Guangdong, Chine  

                    

Droit d'auteur©Shenzhen TigerWong Technology Co.,Ltd 2021  | Plan du site
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
Annuler
Customer service
detect