loading

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
Introduzione al sistema di parcheggio intelligenteIl sistema di parcheggio intelligente è un dispositivo elettrico che fornisce informazioni leggibili dall'uomo per assistere le persone nella navigazione
Gestione dei parcheggiLa definizione di gestione dei parcheggi è la pratica di gestire i parcheggi e le loro aree per raggiungere lo scopo di provvedere alla
Come utilizzare il sistema di parcheggio per auto anpr? Il sistema di parcheggio è diventato un modo popolare per mantenere la tua attività senza intoppi. La cosa buona del sistema di parcheggio è che può
Perché le soluzioni di parcheggio anpr? Quando parcheggi la tua auto presso le soluzioni di parcheggio anpr, di solito stai sfruttando i numerosi vantaggi delle soluzioni di parcheggio anpr. È
Che cosa sono i sistemi di parcheggio anpr? I sistemi di parcheggio Anpr sono progettati per rendere più facile alle persone parcheggiare la propria auto in città. Il sistema utilizza sensori per misurare il di
Che cos'è il parcheggio per carrelli elevatori? Sono bloccato nel traffico. Devo parcheggiare la macchina qua e là. Ci sono così tanti posti dove parcheggiare la mia macchina. Cosa fai? Parcheggi e basta
Come funziona il sistema di gestione automatizzata dei parcheggiCi sono tante cose che puoi fare per migliorare la qualità della tua vita. E quando hai fatto tutto quello che hai
Introduzione alle biglietterie automatiche Difficile darne una chiara descrizione. Molte persone usano lo stesso formato, il che lo rende più facile da capire
Che cos'è il parcheggio con carrello elevatore? Devo usare il mio smartphone quando utilizzo Internet. Quando si utilizza Internet, è facile essere distratti dalle cose che accadono intorno a me
L'introduzione del sistema di gestione intelligente del parcheggioIl sistema di gestione intelligente del parcheggio è un modo intelligente per ridurre le bollette energetiche e aiutarti a mantenere la tua auto in movimento
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