Obiettivo

  1. Comprendere le nozioni di base sul testing di unità.
  2. Scopri i framework e gli strumenti comunemente utilizzati per testare il codice AEM.
  3. Comprendi le opzioni per deridere o simulare le risorse AEM durante la scrittura di unit test.

Informazioni di base

In questa esercitazione verrà illustrato come scrivere unit test per il modello Sling del componente Byline (creato in Creazione di un componente AEM personalizzato). Gli unit test sono test di build-time scritti in Java™ che verificano il comportamento previsto del codice Java™. Ogni unit test è in genere piccolo e convalida l'output di un metodo (o unità di lavoro) in base ai risultati previsti.

Utilizziamo le best practice di AEM e utilizziamo:

Test di unità e Adobe Cloud Manager

Adobe Cloud Manager integra l'esecuzione di unit test e il reporting sulla copertura del codice nella propria pipeline CI/CD per incoraggiare e promuovere la best practice per il codice AEM di unit test.

Anche se il codice di test di unità è una buona pratica per qualsiasi base di codice, quando si utilizza Cloud Manager è importante sfruttare i suoi servizi di test e reporting della qualità del codice fornendo unit test per l’esecuzione di Cloud Manager.

Aggiornare le dipendenze Maven del test

Il primo passaggio consiste nell’esaminare le dipendenze Maven per supportare la scrittura e l’esecuzione dei test. Sono necessarie quattro dipendenze:

  1. JUnit5
  2. Framework di prova Mockito
  3. Apache Sling Mocks
  4. Framework di test di AEM Mocks (di io.wcm)

Le dipendenze dei test JUnit5, Mockito e ​ AEM Mocks** vengono aggiunte automaticamente al progetto durante l'installazione utilizzando l'archetipo AEM Maven.

  1. Per visualizzare queste dipendenze, apri il POM Reactor padre in aem-guides-wknd/pom.xml, passa a <dependencies>..</dependencies> e visualizza le dipendenze per JUnit, Mockito, Apache Sling Mocks e AEM Mock Test di io.wcm in <!-- Testing -->.

  2. Verificare che io.wcm.testing.aem-mock.junit5 sia impostato su 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>
    
    CAUTION
    Archetipo 35 genera il progetto con io.wcm.testing.aem-mock.junit5 versione 4.1.8. Effettua il downgrade a 4.1.0 per seguire il resto di questo capitolo.
  3. Apri aem-guides-wknd/core/pom.xml e osserva che le dipendenze di test corrispondenti sono disponibili.

    Una cartella di origine parallela nel progetto core conterrà gli unit test ed eventuali file di test di supporto. Questa cartella test fornisce la separazione delle classi di test dal codice sorgente, ma consente ai test di agire come se si trovassero negli stessi pacchetti del codice sorgente.