Migrarea de la JUnit 4 la JUnit 5: implementare, dependencies, adnotari

Migrarea de la JUnit 4 la JUnit 5 poate sa fie facuta pas cu pas si, pentru o perioada de timp, s-ar putea sa lucrezi cu o abordare hibrida, in special in proiectele mature. In cadrul acestei serii de articole vom compara dependencies intre JUnit 4 si JUnit 5. Apoi vom compara adnotarile echivalente JUnit 4 si JUnit 5.

Aug 5, 2020 3
Migrarea de la JUnit 4 la JUnit 5 poate sa fie facuta pas cu pas si, pentru o perioada de timp, s-ar putea sa lucrezi cu o abordare hibrida, in special in proiectele mature. In cadrul acestei serii de articole vom compara dependencies intre JUnit 4 si JUnit 5. Apoi vom compara adnotarile echivalente JUnit 4 si JUnit 5.

1. Pasii de la JUnit 4 la JUnit 5

JUnit 5 este o noua paradigma care vine la pachet cu o noua arhitectura. Si cu pachete, adnotari, metode si clase noi. O parte din functionalitatile JUnit 5 sunt similare cu cele ale JUnit 4; altele sunt noi si ofera noi optiuni de lucru. JUnit Jupiter programming si extension model nu suporta in mod nativ functionalitati JUnit 4 precum reguli sau runners. Insa nu trebuie sa actualizam toate testele existente, test extensions si infrastructura de test dezvoltata custom pentru a migra proiectele catre JUnit Jupiter – cel putin nu instant.

JUnit ofera o optiune de migrare cu ajutorul JUnit Vintage test engine; in tabelul 1 de mai jos prezentam pe scurt cei mai importanti pasi. Facand asta avem posibilitatea de a executa teste bazate pe versiunile JUnit mai vechi folosind infrastructura JUnit Plaftorm. Toate clasele si adnotarile specifice JUnit Jupiter sunt localizate in pachetul de baza org.junit.jupiter. Toate clasele si adnotarile specifice JUnit 4 se afla in pachetul de baza org.junit. Astfel ca avand atat JUnit 4 si JUnit 5 Jupiter in classpath nu duce la un conflict. In consecinta, proiectele tale pot sa mentina testele JUnit 4 implementate anterior impreuna cu testele JUnit Jupiter. JUnit 5 si JUnit 4 pot sa coexiste pana cand finalizam migrarea noastra, indiferent cand se face. Si aceasta migrare poate sa fie planificata si executata cu grija pe baza prioritatii sarcinilor si provocarilor aferente urmatorilor pasi.

Migrarea de la JUnit 4 la JUnit 5 implementare, dependencies, adnotari.jpg

Tabel 1 Migrarea de la JUnit 4 la JUnit 5

Pasii principali Comentarii 
Inlocuirea dependencies de care ai nevoie. JUnit 4 are nevoie de o singura dependency. JUnit 5 necesita mai multe dependencies, legate de functionalitatile care sunt folosite. JUnit 5 foloseste JUnit Vintage pentru a lucra cu teste din JUnit 4.
Inlocuirea adnotarilor si introducerea de adnotari noi.
Unele adnotari JUnit 5 le oglindesc pe cele vechi din JUnit 4. Altele introduc functionalitati noi si ne ajuta sa scriem teste mai bune.
Inlocuirea testing classes si methods.
JUnit 5 assertions si assumptions au fost mutate in clase diferite in pachete diferite.
Inlocuirea regulilor si runners JUnit 4 cu JUnit 5 extension model.
Acest pas necesita de cele mai multe ori mai mult efort decat restul pasilor prezentati in acest tabel. Deoarece JUnit 4 si JUnit 5 pot sa coexiste pentru o perioada mai lunga de timp regulile si runners pot sa ramana in cod sau sa fie inlocuite mai tarziu.


Inainte de a dezvolta si rula teste JUnit
  • JUnit 4 necesita Java 5 sau versiuni mai noi.
  • JUnit 5 necesita Java 8 sau versiuni mai noi.
In consecinta, migrarea de la JUnit 4 la JUnit 5 poate sa necesite un update al versiunii de Java folosite in proiect.

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.