Ajouter un commentaire

Introduction au plug-in KotlinTest pour IntelliJ IDEA

Par:
francoistonic

jeu, 18/04/2019 - 12:01

Il existe deux frameworks de tests populaires dans la communauté Kotlin : KotlinTest et Spek. KotlinTest est utilisé par de gros projets open source tels que Arrow, et de par mon expérience, je sais qu’il est utilisé dans de grandes entreprises comme la Deutshe Bank et Barclays. Mais, de nombreux projets et développeurs continuent à utiliser JUnit ou les classes basiques telles que kotlin.test, livrées dans la librairie standard. Faisons un focus sur KotlinTest.

Par Stephen Samuel (1)

Les frameworks de tests, tels que ScalaTest, Specs2, Spocks, sont supportés par les IDE de JetBrains. Jusqu’à présent, KotlinTest était peu utilisé. Mais la situation change et un plug-in dédié est désormais disponible. Ce module s’installe facilement depuis le référentiel de plug-in JetBrains.

Attention : ce plug-in nécessite KotlinTest 3.3.1 (minimum).

Premier contact

Une fois installé et IDEA redémarré, vous allez voir un nouvel pictogramme sur votre éditeur.

En cliquant sur l’icône d’exécution, une fenêtre contextuelle d’exécution / debug apparaîtra. Les tests se lanceront et tous les tests définis pour ce contexte le seront aussi. Ainsi, vous pouvez exécuter un test ou une batterie de tests. Si vous utilisez JUnit, vous êtes en terrain connu.

Ces icônes sont générées pour tous les types de spécifications.

Créer d’un test

Peut-être connaissez-vous déjà les fonctions de création de tests (Create new test). Cette fonction est directement accessible via ctrl+shift+T, sur le nom d’une classe. Puis vous sélectionnez Create new test dans la fenêtre contextuelle.

A partir de là, nous aurons à l’écran l’ensemble des options disponibles pour préparer votre test. Vous pouvez décider si vous voulez insérer automatiquement les fonctions setup ou teardown. Dans KotlinTest, elles sont nommées beforeTest et afterTest.

Voici un petit exemple d’un fichier de tests créé automatiquement :

Le plugin rajoute aussi l’import shouldbe. Il s’agit de la fonction d’assertion la plus couramment utilisée.

Lorsque vous utilisez la fenêtre de dialogue Create Test, vous avez la possibilité de générer des tests stubs pour les fonctions présentes dans la classe que vous testez.

Si vous utilisez certaines de ces fonctions puis cliquez sur OK, le fichier de test aura des tests vierges prêts à l’emploi. Par exemple :

Notez que les tests générés reprennent le style de tests que vous aurez choisi. Si vous avez sélectionné FeatureSpec, les tests seront générés de manière compatible avec ce style.

Aller aux sources

Une fois le test exécuté, il est possible de passer directement aux sources d’un test, qu’il ait réussi ou échoué.

Pour cela, il suffit de sélectionner l’option Jump to source.

Intentions

Les intentions sont des suggestions contextuelles que l’éditeur fait aux développeurs. Elles incluent la possibilité d’encercler les instructions avec assertSoftly, d’ajouter des assertions de gestion des exceptions, d’activer un test, etc.

Mettez en surbrillance un code et ouvrez la fenêtre des suggestions : alt+entrée. L’éditeur affiche alors l’ensemble des intentions disponibles.

Si vous sélectionnez une intention, les instructions surlignées seront placées à l’intérieur d’un lambda.

Vous pouvez aussi très rapidement activer ou désactiver un test en plaçant la souris sur le nom du test et afficher les intentions.

Si vous ne le savez pas, les tests avec le préfixe ! sont automatiquement ignorés. Pour en savoir plus sur cette particularité : https://proandroiddev.com/kotlintest-pro-tips-54ce19c32c68

Bref, avec ce plug-in, le développeur Kotlin devient encore plus productif avec l’insertion rapide de tests. Et encore, nous n’avons pas évoqué l’ensemble des possibilités !

Pour en savoir plus :

https://kotlinlang.org/api/latest/kotlin.test/index.html

(1) Traduit et adapté de l’Anglais par François Tonic / Programmez!

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
     J  V     V  M   M  Y   Y   GGG  
J V V MM MM Y Y G
J V V M M M Y G GG
J J V V M M Y G G
JJJ V M M Y GGG