Arhitectura Junit 5. Partea a doua

Luxoft Training
3 min readJun 10, 2020

--

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).

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.

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

Originally published at https://www.luxoft-training.ro.

--

--

No responses yet