• 30 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 21/05/2021

Lancez votre premier test

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction

Comme nous l'avons vu dans le précédent chapitre, l'approche TDD présente certains avantages : moins de code à écrire, une application plus fiable. Dans ce chapitre, nous allons créer une nouvelle application pour mettre en œuvre cette approche. Cette application s'appelle CoinCoinTracker (vous prononcez comme vous voulez). Elle permet de gérer un porte-monnaie virtuel. Rien de farfelu, juste quelques grands principes permettant de mettre en exergue l'approche TDD et l'écriture de tests unitaires locaux. Mettez votre ceinture, c'est parti.

Création de l'application

Ouvrez votre IDE favori (c'est à dire Android Studio), puis créez une nouvelle application :

  • Nom : CoinCoinTracker

  • Format : Téléphone ou Tablette

  • Activité principale : Empty Activity, nommée MainActivity

Lorsque vous créez un nouveau projet, Android Studio vous crée automatiquement l'arborescence de test correspondante. C'est à dire qu'il vous crée un répertoire test et un répertoire androidTest, situés dans le répertoire app/src. C'est dans ce même répertoire que vous trouverez le répertoire main, qui contient les sources de votre projet.

La capture d'écran ci-dessus représente l'arborescence Android. Cette vue montre les principaux répertoires d'un projet Android. Pour mieux comprendre l'arborescence réelle, choisissez la vue Project et déroulez l'arborescence. Vous y trouverez les deux répertoires test et androidTest :

Le répertoire test va contenir l'ensemble des tests unitaires locaux. C'est à dire qu'ils peuvent être exécutés directement au sein d'Android Studio, sans avoir besoin de lancer l'émulateur ou de brancher un équipement réel. L'exécution sera donc très rapide. Ces tests seront utilisés pour valider le modèle de CoinCoinTracker.

Le répertoire androidTest va contenir l'ensemble des tests instrumentalisés. Ce sont des tests d'intégration et d'interface qui ont besoin d'Android pour fonctionner. Ils seront donc plus longs à se lancer, mais seront plus proches de la réalité.

Framework de test

Avec Android Studio, les tests unitaires sont exécutés en utilisant le framework JUnit 4. Ce framework est couramment utilisé par la communauté des developpeurs Java.

Un test unitaire correspond à une classe Java, dont chaque méthode correspond à un test. Vous êtes libres d'avoir autant de classes et de méthodes que vous souhaitez. L'idéal étant d'avoir une classe par composant, puis une méthode par fonctionnalité.

La librairie JUnit est chargée grace à Gradle (le système permettant de compiler votre application). Pour vous en assurer, affichez l'arborescence du projet en utilisant la vue Android. Ensuite, déroulez la section Gradle Scripts. Puis ouvrez le fichier build.gradle (Module: app). En bas du fichier, vous devriez voir apparaître un bloc de ce type :

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}

C'est la dernière ligne qui nous intéresse : elle permet de préciser que le framework JUnit version 4.12 est téléchargé puis mis à disposition lorsque les tests unitaires locaux sont exécutés (directive testCompile).

Lancement d'un test

Par défaut, Android Studio crée un test factice lorsque vous créez un nouveau projet. Nous allons commencer par lancer ce test pour vous familiariser avec la démarche.

Vous avez le choix entre différents niveaux de lancement :

  • Lancer tous les tests unitaires d'un coup ;

  • Lancer tous les tests d'une classe de test donnée ;

  • Lancer un tests précis (c'est à dire une méthode précise d'une classe de test).

En vous référant à l'image ci-dessus, les trois méthodes de lancement possibles sont :

  1. En faisant un clic droit sur le paquetage, puis en sélectionnant Run Tests in 'nom.du.paquetage...' ;

  2. En faisant un clic droit sur une classe, puis en sélectionnant Run 'NomDeLaClasse' ;

  3. En cliquant (clic gauche) sur le petit symbole au niveau d'une méthode de classe de test, puis Run 'NomDeLaMéthode'.

Une fois le ou les tests lancés, une nouvelle fenêtre apparaît en bas d'Android Studio, avec le résultat d'exécution :

Le jour où vous aurez de nombreux tests, et si un test échoue, vous pourrez le relancer directement depuis cet écran en faisant un clic droit sur le test, puis Run 'NomDeLaMéthode'.

Conclusion

Vous savez lancer un test, excellent. Mais c'est dommage, c'était un test factice. Vous pensiez vous en sortir à si bon compte ? Eh bien non ! C'est vous qui allez écrire des tests maintenant. Et c'est ce que nous allons voir dans le prochain chapitre.

Exemple de certificat de réussite
Exemple de certificat de réussite