Ripple Motion - Techtalk - développement mobile - nantes

TechTalk#7 – Android testing best practices

TECH TALK #7

 

Android testing best practices

 

# Android Testing best practices

Deux types de tests sont disponibles sous Android Studio 2.+; les tests « purs java » et les tests « Android ». La première méthode vous permettra de tester du code Java sur votre machine. La seconde méthode établie, une connexion avec votre émulateur ou appareil Android, compile et lance une application Android de test dans la Flavor de votre choix.

 

# Quoi de neuf ?

Depuis 2016, Android Studio supporte JUnit4. Junit4 apporte le support des Matcher, Rules et Classifiers modernisant ainsi l’écriture et la validation des tests.

 

# Les « Matchers »

JUnit améliore la construction / lisibilité des asserts à l’aide de matchers tel que « is », « not », « notNullValue », « isEmptyOrNullString »…Vous pouvez également définir vos matchers afin de valider des objets complexes ou règles métiers.

 

# Les « Rules »

Les rules définissent des comportements à exécuter lors de chaque test. Voici quelques exemples de « Rules »

TemporaryRules: fournis un répertoire temporaire qui sera effacé en fin de test

ErrorCollector: collecte les exceptions sans interrompre le test et liste celles-ci en fin de test uniquement

Timeout: redéfini la valeur d’expiration des tests

ExpectedException: défini quelles exceptions sont attendues lors de l’exécution du test.

 

# Les « Classifiers »

Les annotations de méthodes de tests « Classifiers » permettent de classer vos tests selon leur temps présumé d’exécution. Elles vous permettront d’exécuter vos tests selon vos critères de temps.

– @SmallTest < 200ms

– @MediumTest < 1000 ms

– @LargeTest > 1000 ms

De même, dans le cas de tests aux résultats « aléatoire » (dépendance à un système instable ou non-prédictible), vous pourrez ajouter le classifier « FlakyTest »

 

# Le « UI Testing »

Plusieurs outils vous permettent de tester votre interface utilisateur: Espresso vs UIAutomator.

Nous préconisons les tests avec Expresso, puisque celui-ci vous donne accès aux instances de vos activités, fragments etc… (https://developer.android.com/training/testing/ui-testing/espresso-testing.html)

 

Pour exemple, vous pourrez définir une classe de test de votre activité avec pour objectif de vérifier le résultat d’un tap sur un bouton.

Vous pourrez également valider simplement que vous lancez la bonne activité pour un intent donné.

 

Tech Talk animé par :

Ripple Motion : Olivier Tabone - CTO et directeur technique

OLIVIER TABONE

Co fondateur/Directeur

 

Vous avez manqué le TechTalk #6 – Swifty Enums – Retrouvez-le par ici !