Table des matières:
- Modifier votre build
- Pour ajouter un test à Android, vous devez vous assurer de le placer au bon endroit. Ouvrez votre répertoire src dans Android Studio et créez un nouveau répertoire nommé androidTest s'il n'existe pas déjà. Dans ce répertoire, créez un répertoire nommé java.
- Commencez par démarrer un émulateur ou connectez votre téléphone à votre ordinateur via USB.
- Pourquoi faire tous ces efforts pour ajouter un test simple? Vous pourriez penser qu'il ne vaut guère la peine de tester une telle fonctionnalité de base.
- Les tests Espresso sont écrits au format suivant:
- Dans cet esprit, ajoutons un test de plus. Ajoutez les lignes en gras à votre classe de test:
Vidéo: Comment tester (vraiment) une application Android (fr) - Thomas Guerin & Benjamin Lacroix, XEBIA 2025
En tant que développeur, vous connaissez déjà l'importance d'écrire des tests pour votre code. Ceci est tout aussi vrai pour le développement d'applications Android que pour tout autre type de développement. Heureusement, Android facilite l'ajout de tests à votre application.
Les informations suivantes vous présenteront les bases de l'ajout de tests à votre application Android à l'aide d'Espresso. Espresso est une bibliothèque fournie avec le SDK Android pour simplifier le test des interfaces utilisateur Android.
Assurez-vous que votre application utilise gradle 2. 1. 1 ou plus tard avec les outils de construction Android 21. 1. 2 ou plus tard.
Pour ajouter un test Espresso à votre application, vous devez:
-
Modifier votre script de construction
-
Écrire le test
-
Lancer le test
Modifier votre build
Ouvrir le construire. gradle fichier pour votre application. Si votre application comporte plusieurs modules, vous devez ouvrir la version. fichier gradle dans votre module d'application, pas dans le module racine. Donc, pour l'application Silent Mode Toggle, vous devez ouvrir SilentModeToggle / build. gradle.
Ajoutez la dépendance suivante à la section dépendances de votre build. fichier gradle:
dépendances {… // Test dépendances androidTestCompile ' com. Android. soutien. tester. espresso: espresso-core: 2. 0 ' }
Ceci indique à Android Studio d'inclure la bibliothèque Espresso dans vos dépendances de test. La bibliothèque Espresso ne sera pas intégrée dans l'apk que vous expédiez, mais elle sera incluse dans votre test apk afin que vos tests puissent l'utiliser.
Ensuite, ajoutez ce qui suit à votre defaultConfig:
defaultConfig {… // Le test à utilise lorsque exécute le < tests. testInstrumentationRunner " android support.tmp testeur runner AndroidJUnitRunner " } Ceci indique à Android quelle instrumentation utiliser pour exécuter vos tests. Vous n'avez pas besoin d'en savoir beaucoup sur l'instrumentation, sauf que c'est celui que vous devez utiliser lorsque vous voulez exécuter des tests Espresso.
Comment écrire le test
Pour ajouter un test à Android, vous devez vous assurer de le placer au bon endroit. Ouvrez votre répertoire src dans Android Studio et créez un nouveau répertoire nommé androidTest s'il n'existe pas déjà. Dans ce répertoire, créez un répertoire nommé java.
Dans le répertoire que vous venez de créer, créez un nouveau fichier nommé SilentModeToggleEspressoTest. Java. Vous pouvez vraiment le nommer comme vous voulez, assurez-vous juste qu'il se termine par "Test".Java".
public class SilentModeToggleEspressoTest extends ActivityInstrumentationTestCase2 {public SilentModeToggleEspressoTest () {super (MainActivity.classe);}}
Ceci crée une nouvelle classe nommée SilentModeToggleEspressoTest. Il étend ActivityInstrumentationTestCase2, que vous utiliserez pour écrire la plupart des tests de votre application. ActivityInstrumentationTestCase2 est paramétré sur le type d'activité que vous souhaitez tester. Pour l'application SilentModeToggle, l'activité principale de l'application s'appelle, de manière appropriée, MainActivity.
Avant de pouvoir écrire votre test, vous devez le configurer. Pour ce faire, ajoutez la méthode suivante à votre classe de test:
@Override public void setUp () throws Exception {super. installer(); getActivity ();}
Pour tester une activité à l'aide d'Espresso, vous devez d'abord créer l'activité testée. Ceci est fait en appelant getActivity (), qui crée et lance l'activité pour vous si elle n'existe pas déjà. Vous faites cela ci-dessus dans la méthode setUp () pour la classe, qui est exécutée avant l'exécution de chacun de vos tests.
Maintenant, enfin, vous pouvez écrire votre test. Ajoutez la méthode suivante à votre classe:
public void testPhoneIconIsDisplayed () {// Lorsque la vue phone_icon est disponible, // vérifiez qu'elle est affichée. onView (withId (R, id, phone_icon)). check (correspond (isDisplayed ()));}
Vous devez importer les méthodes onView, withId, check, matches et isDisplayed. Android Studio vous propose de vous aider avec les importations statiques nécessaires.
Les tests d'expresso sont conçus pour être très faciles à lire. Comme vous pouvez le voir ici, ce test attend jusqu'à la vue avec ID R. id. phone_icon est disponible, et une fois qu'elle l'est, elle vérifie que la vue est affichée.
L'étape suivante consiste à lancer le test.
Comment lancer le test
Commencez par démarrer un émulateur ou connectez votre téléphone à votre ordinateur via USB.
Une fois votre appareil connecté et en cours d'exécution, faites un clic droit sur le répertoire java sous androidTest, puis choisissez Exécuter tous les tests (avec l'icône Android):
Si le test réussit, vous devriez voir quelque chose comme:
Pourquoi les tests sont-ils importants?
Pourquoi faire tous ces efforts pour ajouter un test simple? Vous pourriez penser qu'il ne vaut guère la peine de tester une telle fonctionnalité de base.
L'application Silent Mode Toggle est assez simple pour qu'un programmeur fainéant justifie peut-être un test de saut. Peut être.
Si vous ajoutez quelques tests pour ajouter, supprimer et modifier des tâches dans cette application, vous avez l'esprit tranquille en sachant que chaque fois que vous effectuez une modification, vos tests automatisés détectent les bogues significatifs que vous introduisez.
Voulez-vous vraiment tester à nouveau toutes les fonctionnalités de votre application sur les téléphones, les tablettes, les montres et les téléviseurs, puis recommencer sur des appareils plus anciens pour tester la rétrocompatibilité?L'ajout de tests peut prendre en charge une grande partie de cette difficulté pour vous.
À propos des tests Espresso
Les tests Espresso sont écrits au format suivant:
onView (Matcher). effectuer (ViewAction). check (ViewAssertion)
La feuille de triche suivante, gracieuseté du projet Espresso 2. 0, est un outil utile pour écrire des tests Espresso. Il répertorie la syntaxe générale des tests Espresso et répertorie également les types de correspondance les plus courants: ViewAction et ViewAssertion.
Un moyen rapide d'écrire des tests Espresso est de profiter des fonctionnalités de saisie semi-automatique d'Android Studio. Si vous savez que la plupart des correspondances sont dans la classe ViewMatchers, la plupart des actions sont dans ViewActions, et la plupart des assertions sont dans ViewAssertions, alors vous pouvez utiliser autocomplete pour trouver le bon matcher:
Ajoutons un
Dans cet esprit, ajoutons un test de plus. Ajoutez les lignes en gras à votre classe de test:
public class SilentModeToggleEspressoTest extends ActivityInstrumentationTestCase2 {
AudioManager audioManager; … @Override public void setUp () lance Exception {super. installer(); Activité activité = getActivity (); // Récupère et AudioManager à partir de l'activité activité audioManager = (AudioManager). getSystemService (Contexte. AUDIO_SERVICE); // Définissez que le mode sonnerie est réinitialise à audioManager normal. setRingerMode (AudioManager. RINGER_MODE_NORMAL); } … public void testCanToggleIcon () { // Lorsque phone_icon voir est > disponible, cliquez sur it onView (avec Id (ID téléphonique)). effectuer (cliquer sur ()); // Alors affirme que le téléphone est maintenant en mode silencieux. assertTrue (RingerHelper.isPhoneSilent (audioManager)); } } Ce test trouve le bouton bascule et clique dessus, puis vérifie que le mode silencieux de l'application a été activé. Le code setUp () garantit que le mode de sonnerie est réinitialisé avant le test. Désormais, chaque fois que vous apportez une modification à votre application, il vous suffit de lancer ces scénarios de test pour avoir la certitude que vous n'avez rien cassé d'important.
Si vous avez un serveur d'intégration continue, tout ce que vous devez faire est d'exécuter la cible connectedCheck dans Gradle pour exécuter vos scénarios de test avec chaque validation que vous effectuez. Si vous n'avez pas encore de serveur d'intégration, il est peut-être temps d'en chercher un! Découvrez travis-ci. org pour une bonne option.
Tester des applications sur Android est un sujet profond et complexe, mais maintenant vous devriez avoir tout ce dont vous avez besoin pour commencer à tester vos applications!
Si vous aviez souhaité être plus avancé, vous pourriez être intéressé par certaines des ressources suivantes:
Utilisez Spoon pour tester plusieurs périphériques.Essayez Fork pour exécuter des tests rapidement sur plusieurs périphériques.
-
Essayez travis-ci ou Jenkins pour un serveur d'intégration continue.
-
Découvrez l'introduction de Michael Bailey à Android Testing sur YouTube.
