Objectif

  1. Comprendre les principes de base des tests unitaires.
  2. Découvrir les frameworks et les outils couramment utilisés pour tester du code AEM.
  3. Comprendre les options permettant de simuler des ressources AEM lors de l’écriture de tests unitaires.

Contexte

Dans ce tutoriel, nous allons découvrir comment écrire des tests unitaires pour le modèle Sling de notre composant de signature (créé dans la partie Création d’un composant AEM personnalisé). Les tests unitaires sont des tests de création écrits en Java™ qui vérifient le comportement attendu du code Java™. Chaque test unitaire est généralement petit et valide la sortie d’une méthode (ou d’unités de travail) par rapport aux résultats attendus.

Nous suivons les bonnes pratiques d’AEM et utilisons :

Test unitaire et Adobe Cloud Manager

Adobe Cloud Manager intègre l’exécution de test unitaire et le rapport de couverture de code dans son pipeline CI/CD, afin d’encourager et de promouvoir les bonnes pratiques en matière de test unitaire de code d’AEM.

Bien que le code de test unitaire soit une bonne pratique de toute base de code, il s’avère important, lors de l’utilisation de Cloud Manager, de tirer parti de ses fonctionnalités de test de qualité du code et de création de rapports en fournissant des tests unitaires pour que Cloud Manager s’exécute.

Mettre à jour les dépendances Maven de test

La première étape consiste à examiner les dépendances Maven pour prendre en charge l’écriture et l’exécution des tests. Quatre dépendances sont requises :

  1. JUnit5
  2. Le framework de test Mockito
  3. Les simulations Sling d’Apache
  4. Le framework de test de simulations d’AEM (par io.wcm)

Les dépendances de test JUnit5, Mockito et de simulations d’AEM sont automatiquement ajoutées au projet lors de la configuration à l’aide de l’archétype Maven d’AEM.

  1. Pour afficher ces dépendances, ouvrez le fichier POM Reactor parent sur aem-guides-wknd/pom.xml, accédez aux <dependencies>..</dependencies> et affichez les dépendances de JUnit, de Mockito, des simulations Sling d’Apache et des tests de simulation d’AEM par io.wcm sous <!-- Testing -->.

  2. Assurez-vous que io.wcm.testing.aem-mock.junit5 est défini sur 4.1.0  :

    <dependency>
        <groupId>io.wcm</groupId>
        <artifactId>io.wcm.testing.aem-mock.junit5</artifactId>
        <version>4.1.0</version>
        <scope>test</scope>
    </dependency>
    
    ATTENTION
    L’archétype  35 génère le projet avec la version  4.1.8 de io.wcm.testing.aem-mock.junit5. Veuillez rétrograder vers la version  4.1.0 pour suivre le reste de ce chapitre.
  3. Ouvrez aem-guides-wknd/core/pom.xml et vérifiez que les dépendances de test correspondantes sont disponibles.

    Un dossier source parallèle dans le projet principal contiendra les tests unitaires et tous les fichiers de test annexes. Ce dossier de test offre une séparation entre les classes de test et le code source, mais permet aux tests d’agir comme s’ils résidaient dans les mêmes packages que le code source.