Arhitectura Junit 5

In cadrul aceste serii de articole vom aborda noua arhitectura a Junit 5, neajunsurile versiunii JUnit 4, felul in care abordarea modulara a schimbat lucrurile si avantajele acesteia. Mai mult ne vom uita si la cum putem migra codul din JUnit 4 in JUnit 5, folosind noile functionalitati.

May 12, 2020 84
In cadrul aceste serii de articole vom aborda noua arhitectura a Junit 5, neajunsurile versiunii JUnit 4, felul in care abordarea modulara a schimbat lucrurile si avantajele acesteia. Mai mult ne vom uita si la cum putem migra codul din JUnit 4 in JUnit 5, folosind noile functionalitati.

1. Modularitatea JUnit 5


JUnit 5 vine cu o noua abordare. Nu a fost ceva care a aparut instant; a necesitat reflectie si neajunsurile JUnit 4 reprezinta un input bun pentru noile imbunatatiri. Arhitectii din spatele acestei solutii stiau care sunt problemele si au decis sa urmeze calea unei dimensiuni reduse si a modularitatii.

O noua abordare, una modulara, era necesara pentru a permite evolutia framework-ului JUnit. Arhitectura acesteia trebuia sa permita JUnit 5 sa interactioneze cu diferiti clienti programatici, cu diferite instrumente si cu difeite IDE. Era astfel nevoie de:

  • Un API pentru a scrie teste. Dedicat in principal programatorilor.
  • Un mecanism pentru a descoperi si rula teste.
  • Un API care sa permita o interactiune cat mai usoara cu IDE si alte instrumente. Si care sa permita rularea de teste.

Astfel ca arhitectura JUnit 5 include 3 module (fig. 1):

  • JUnit Platform, care este ca o fundatie pe baza careia poti sa lansezi framework-uri de testare pe JVM (Java Virtual Machine). Ofera si un API pentru a lansa teste din consola, IDE sau build tools.
  • JUnit Jupiter, combinatia dintre noul model de programare si extension model pentru scrierea de teste si extensii in JUnit 5. Are numele celei de-a cincea planete din sistemul nostru solar, care este si cea mai mare.
  • JUnit Vintage, un test engine pentru rularea testelor bazate pe JUnit 3 si JUnit 4 pe platforma. Asigura compatibilitatea.

modular architecture of JUnit 5.jpg

Figure 1 Arhitectura modulara a JUnit 5


2. Platforma JUnit 5


Mergand mai departe pe idea de modularitate, ne vom uita pe scurt la artefactele din cadrul platformei JUnit 5 (fig. 2):

  • junit-platform-commons, o librarie interna comuna a JUnit, care poate sa fie folosita doar in cadrul framework-ului JUnit. Alte programe externe nu o pot folosi.
  • junit-platform-console, ajuta la descoperirea si executia de teste din consola, pe platforma JUnit.
  • junit-platform-console-standalone este un executabil JAR cu toate dependentele incluse. Este folosit de Console Launcher, o aplicatie command-line Java care te lasa sa lansezi platforma JUnit din consola. Spre exemplu, poate sa fie folosit pentru a rula teste JUnit Vintage si JUnit Jupiter ca mai apoi sa afiseze rezultatele executiei in consola.
  • junit-platform-engine, un API public pentru test engines.
  • junit-platform-launcher, un API public pentru configurarea si lansarea de test plans, folosite in mod tipic de IDE si build tools.
  • junit-platform-runner, un runner pentru executia testelor si a test suites pe platforma JUnit intr-un mediu JUnit 4.
  • junit-platform-suite-api, care contine adnotarile pentru configurarea suitelor de teste pe platforma JUnit.
  • junit-platform-surefire-provider, care ofera suport pentru a descoperi si executa teste pe platforma JUnit folosind Maven Surefire.junit-platform-gradle-plugin. Acesta ofera suport pentru a descoperi si executa teste pe plaforma JUnit folosind Gradle.


Vrei sa inveti mai multe despre aceasta tehnologie? Descopera cursurile noastre.

Catalin Tudose
Java and Web Technologies Expert

Daca iti place acest articol, distribuie-l si prietenilor tai!




Luxoft Warsaw - Warsaw Spire, plac Europejski 1, 00-844 Warszawa
Dimitrie Pompeiu nr 5-7 , building C, Et. 5, sect 2, Bucharest, 014459

Contact phone:

021 371 4858
Luxoft Poland Wroclaw - Silver Tower pl. Konstytucji 3-go Maja 3 50-048 Wroclaw
Aleja Generała Tadeusza Bora-Komorowskiego 25, Quattro Business Park Five, 31-476 Kraków, Poland

Contact phone:

+48 122110650
Success
Iti multumim.
Inregistrarea ta a fost trimisa.