Android/Espresso Test: diferència entre les revisions
Contingut suprimit Contingut afegit
Removing "Android_Espresso_en_funcionament.webm", it has been deleted from Commons by INeverCry because: No permission since 28 October 2016. |
m Revisió ortogràfica |
||
Línia 1:
== Introducció ==
=== Què és el testeig d’aplicacions? ===
El testeig d’una aplicació consisteix en oferir al programador una manera còmoda
Espresso és una eina que permet fer el testeig de les teves aplicacions de manera totalment automatitzada, simulant el comportament que tindria una persona normal i corrent. Normalment, aprofitem i anem una mica més enllà per prevenir qualsevol tipus de falla en la sistema que pugui aparèixer per casos no contemplats. A més a més, s'ha de tenir en compte que cada conjunt de proves que es vol aplicar a una app, requereix una eina diferent i personalitzada per cadascuna. Aquesta eina es pot implementar gracies a la
=== Per què fer servir Espresso? ===
Cal destacar que aquesta eina, a diferencia de les
== Posta a punt ==
Per poder programar la interfície Espresso, abans de tot necessitarem incorporar al nostre entorn de programació les dependències a les
Primer de tot,
=== Inhabilitació d'animacions ===
Es recomana deshabilitar les animacions del nostre dispositiu a l'hora de fer les proves. Si les deixéssim habilitades, podria donar-se el cas de rebre resultats inesperats o que l’aplicació deixés de funcionar.
Les opcions que
- Window animation scale
- Transition animation scale
Línia 21:
[[File:Configuracio.png|thumb|Configuració del entorn de treball]]
===
Tot seguit,hem
<syntaxhighlight lang="groovy">
defaultConfig{
Línia 48:
Dintre d'aquesta nova classe, és on implementarem cadascuna de les proves que farem servir sobre l'aplicació a testejar. Aquesta nova classe, haurà de tenir una estructura similar a la següent:
* Declaració de les diferents
[[File:Llibreries.png|cap|Llibreries del projecte]]
Línia 61:
* @Rules: aquesta etiqueta l'utilitzarem per dir-li al test sobre quina classe volem aplicar les proves que escriurem més endavant.
* @Before: aquesta etiqueta la farem servir per inicialitzar tot el que necessitem abans
* @Test: tota funció que tingui aquesta etiqueta serà una prova que executarà l'aplicació de testeig.
Dintre de les funcions amb l'etiqueta @Test, haurem de definir les accions que executarà l'aplicació utilitzant uns mètodes en concret que Espresso ens ofereix de base. Utilitzant-les, podrem tant generar accions com si fóssim
Per poder simular la interacció humana,
* Identificar la View sobre la que aplicarem les proves
* Generar l'acció pertinent sobre la View
* Recuperar el resultat obtingut
Per identificar una View, utilitzarem el mètode onView(), que és qui retornarà la View en qüestió, en conjunt amb el
<syntaxhighlight lang="groovy">
onView(withId(R.id.edittext_view))
</syntaxhighlight>
Tot seguit, per generar l’acció del usuari,
En la llista següent, podem trobar els diferents mètodes per executar cadascuna
de les accions que
* ViewActions.click(): simula un click sobre la view
* ViewActions.typeText(String): simula un click en la view i hi escriu el text especificat per
* ViewActions.scrollTo(): simula com l'usuari mou la visibilitat de la View, de tal manera que es pugui veure la View que estem buscant.
* ViewActions.pressKey(KeyCode): simula un click en la tecla que li passem per paràmetre en forma de keycode.
Línia 106:
== Un exemple pràctic ==
=== Preparació
En aquest punt, explicarem pas a pas com crear i aplicar un exemple pràctic. Abans de tot, haurem de crear un projecte nou sobre el qual treballarem i farem les proves pertinents. Podem omplir aquest projecte amb el contingut que vulguem, Espresso es pot aplicar en qualsevol projecte seguint les normes especificades anteriorment.
Línia 120:
[[File:Screenshot inici 2.png|thumb|esquerra|Vista principal]]
La imatge que podem observar a l'esquerra, és la vista principal que ens apareixerà quan obrim la
Aquesta aplicació serveix per anar mirant quin tipus de cotxe estem fent servir, si estem fent servir un que s'arrenca prement un botó o utilitzant una clau. Això ho podem aconseguir prement el botó ''Arrenca'', cada cop que el premem s'activarà un event que, de manera intercalada, ens triarà un dels dos tipus de cotxe i aplicarà uns canvis a la vista. De manera més detallada, aquest botó té una responsabilitat que consisteix en
En canvi, el botó ''Nou Cotxe'', té la responsabilitat de re-iniciar les variables que es mostren per pantalla. És a dir, tornar a deixar la vista com es veu en la imatge Vista principal, sense nosaltres tocar el botó.
Línia 143:
=== Entorn Espresso ===
Ara que ja tenim l'estructura bàsica del nostre projecte i sabem
* Capçalera
<syntaxhighlight lang="groovy">
Línia 175:
</syntaxhighlight>
En aquest cas concret, no necessitem inicialitzar cap variable, per tant la funció amb etiqueta @Before el deixarem buit. El que
<syntaxhighlight lang="groovy">
|