loading

TGW è professionale nella progettazione e nella soluzione del sistema di gestione dei parcheggi

Testare gli intenti della fotocamera e della galleria con Espresso

Quando all'interno della tua app Android hai schermate che hanno funzionalità di fotocamera e/o galleria con alcune modifiche dello schermo (viste, etichette o pulsanti che appaiono/scompaiono, ecc.) e devi scrivere alcuni test Espresso per quelle funzionalità/schermate, ce ne sono un paio di aiutanti che ho utilizzato e che voglio condividere con tutti voi. Concessione delle autorizzazioni Quando si utilizza la fotocamera all'interno dell'app, è necessario concedere alcune autorizzazioni nel dispositivo per leggere/memorizzare una foto. Queste autorizzazioni vengono richieste in runtime e di solito sono correlate a READ_EXTERNAL_STORAGE e WRITE_EXTERNAL_STORAGE.

Testare gli intenti della fotocamera e della galleria con Espresso 1

Pertanto, GrantPermissionRule consente di concedere autorizzazioni di runtime su Android M (API 23) e versioni successive e, se applicata a una classe di test, questa regola tenta di concedere tutte le autorizzazioni di runtime richieste.@get:Rulevar mRuntimePermissionRule = GrantPermissionRule.grant(android.

Manifest.permission.WRITE_EXTERNAL_STORAGE) Questa regola viene solitamente utilizzata per concedere autorizzazioni di runtime per evitare che la finestra di dialogo dei permessi venga visualizzata e blocchi l'interfaccia utente delle app e, secondo la documentazione ufficiale: secondo questa regola garantirà automaticamente READ_EXTERNAL_STORAGE quando viene richiesto WRITE_EXTERNAL_STORAGEGallery TestIl codice da prova quando si fa clic sull'icona di una galleria nell'app, quindi viene selezionata un'immagine e mostrata sullo schermo: la prima cosa qui è che ho un metodo di supporto (CameraAndGallery.

savePickedImage) che prima salva un'immagine (per brevità l'icona ic_launcher) che verrà utilizzata nel test come file locale visibile per il test: Il parametro dell'attività deriva da ActivityTestRule:@get:Rulevar mActivityTestRule = IntentsTestRule(MyActivity: :class.java) Quindi creo un oggetto ActivityResult (come un mock ma per Android Intent) che verrà utilizzato dal matcher Espresso Intents (per abbinare e convalidare gli intenti in uscita):val imgGalleryResult = CameraAndGallery.createImageGallerySetResultStub(mActivityTestRule.

attività) intenting(hasAction(Intent.ACTION_CHOOSER)).respondWith(imgGalleryResult)Il segreto qui è chiedere il file precedentemente salvato e infine utilizzato come risultato.

Testare gli intenti della fotocamera e della galleria con Espresso 2

Nota: per lavorare con gli intenti espresso, dobbiamo aggiungere questa dipendenza alla build delle app. file gradle: AndroidTestImplementazione androidx.test.

espresso:espresso-intents:$espressoVersionPer il test che stiamo scrivendo, assumiamo che l'immagine prelevata dalla Gallery, la stiamo impostando in un ImageView che è visibile all'utente, quindi la parte finale del test è verificare che il viene visualizzata l'immagine (metodo hasImageSet()):onView(withId(R.id.auctionphotos_bigimage_viewer)).

check(matches(hasImageSet()))Camera TestSimile al Gallery Test, il test per ottenere un'immagine dal dispositivo Camera segue quasi gli stessi passaggi, ma in questo caso non è necessario salvare un'immagine prima, solo prendere in giro il risultato di la fotocamera: il risultato dell'acquisizione simulata come segue: l'immagine risultante verrà acquisita dall'intento:intending(hasAction(MediaStore. ACTION_IMAGE_CAPTURE)). answerWith(imgCaptureResult)E con ciò possiamo verificare se l'immagine è stata scattata e visualizzata:onView(withId(R.

id.auctionphotos_bigimage_viewer)).check(matches(hasImageSet())) Infine, se vuoi esplorare un po' più di contenuti relativi ai test e alle intenzioni di Espresso, potresti voler dare un'occhiata a questo repository dal team ufficiale di Android

Mettiti in contatto con noi
Articoli raccomandati
Custodie
nessun dato
Shenzhen Tiger Wong Technology Co., Ltd è il principale fornitore di soluzioni di controllo degli accessi per sistemi di parcheggio intelligenti per veicoli, sistemi di riconoscimento delle targhe, tornelli per il controllo degli accessi pedonali, terminali di riconoscimento facciale e Soluzioni di parcheggio LPR .
nessun dato
CONTACT US

Tecnologia Co.,Ltd di Shenzhen TigerWong

Tel:86 13717037584

E-mail: info@sztigerwong.com

Aggiungi: 1° piano, edificio A2, parco industriale digitale Silicon Valley Power, n. 22 Dafu Road, Guanlan Street, distretto di Longhua,

Shenzhen, provincia di Guangdong, Cina  

                    

Diritto d'autore©Shenzhen TigerWong Technology Co.,Ltd 2021  | Mappa del sito
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
Annulla
Customer service
detect