Arhitectura Junit 5. Partea a doua

Al doilea articol din seria noastra despre arhitectura JUnit 5. Astazi abordam JUnit 5 Jupiter si JUnit 5 Vintage.

Jun 4, 2020 108
Al doilea articol din seria noastra despre arhitectura JUnit 5. Astazi abordam JUnit 5 Jupiter si JUnit 5 Vintage.

3. JUnit 5 Jupiter


JUnit Jupiter este o combinatie intre un nou model de programare (adnotari, clase, metode) si extension model pentru scrierea de teste si extensii in JUnit 5. Proiectul Jupiter ofera un TestEngine pentru rularea de teste bazate pe Jupiter in cadrul platformei. Spre deosebire de elementele anterioare legate de runners si rules extension points in JUnit 4, JUnit Jupiter extension model are un singur concept coerent: Extension API.

Artefactele din cadrul JUnit Jupiter sunt:
  • junit-jupiter-api, JUnit Jupiter API pentru scrierea de teste si extensii.
  • junit-jupiter-engine, implementarea JUnit Jupiter test engine. Este necesar doar la runtime.
  • junit-jupiter-params - ofera suport pentru teste parametrizate in JUnit Jupiter.
  • junit-jupiter-migrationsupport - ofera suport pentru migrarea de la JUnit 4 la JUnit Jupiter, si este necesar doar pentru rularea unor anumite reguli JUnit 4.


4. JUnit 5 Vintage


JUnit Vintage ofera un TestEngine pentru rularea de teste bazate pe JUnit 3 si JUnit 4 in cadrul platformei. JUnit 5 Vintage contine doar junit-vintage-engine, necesar pentru a executa teste scrise in JUnit 3 sau 4. Pentru asta ai nevoie si de JUnit 3 sau 4 JARs.

Este util atunci cand ai nevoie sa interactionezi cu vechile teste prin intermediul JUnit 5. Este probabil sa fie nevoie sa lucrezi la proiectele tale cu JUnit 5, dar in acelasi timp sa ai nevoie sa accesezi vechile teste. JUnit 5 Vintage este solutia de care ai nevoie!


5. Arhitectura JUnit 5 imagine de ansamblu


Pentru a aduna tote informatiile sub aceeasi umbrela si pentru a arata cum functioneaza intreaga arhitectura, putem spune ca platforma JUnit ofera facilitatile necesare pentru a rula diferite tipuri de teste: teste JUnit 5, teste mai vechi JUnit 3 si 4, teste third-party (fig 2).

big picture JUnit 5 architecture.png

Fig 2 Arhitectura JUnit 5 - imagine de ansamblu


Mai in detaliu (fig 3):
  • Test APIs ofera facilitatile pentru diferite test engines: junit-jupiter-api pentru teste JUnit 5; junit-4.12 pentru teste legacy; custom engines pentru teste third-party.
  • Test engines mentionate mai sus sunt create prin extinderea junit-platform-engine public API, parte din platforma JUnit 5.
  • Junit-platform-launcher public API ofera facilitatile necesare pentru a descoperi teste in cadrul platformei JUnit 5, pentru solutii precum Maven, Gradle sau IDEs.

detailed picture JUnit 5 architecture.png

Fig 3 Arhitectura JUnit 5 - imagine detaliata


In afara de arhitectura modulara, JUnit 5 ofera si extensions mechanism.

Arhitectura unui sistem joaca un rol important in ceea ce priveste functionalitatile si comportamentul acestuia. Intelegerea arhitecturii atat pentru atat pentru JUnit 4 cat si pentru JUnit 5 te ajuta sa pui in practica cu usurinta aceste functionalitati, sa scrii teste eficiente si sa analizezi alternativele de implementare. Te ajuta sa maresti ritmul cu care iti dezvolti abilitatile de unit testing.

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.