Migrarea de la JUnit 4 la JUnit 5: implementare, dependencies, adnotari. Partea a doua.

Luxoft Training
3 min readSep 4, 2020

--

Cel de-al doilea articol din seria noastra legata de implementarea migrarii de la JUnit 4 la JUnit 5, dependencies si adnotari. In acest articol ne vom uita la dependencies.

2. Dependencies necesare

Sa discutam un pic despre procesul de migrare de la JUnit 4 la JUnit 5. JUnit 5 ne permite sa etichetam testele cu display names folosind teste nested si dynamic.
JUnit 4 are o arhitectura monolit, asa ca exista o singura dependency in configuratia Maven care nu suporta rularea testelor JUnit 4 (fig 1).

Fig 1 JUnit 4 Maven dependency

O JUnit 5 dependency, JUnit Vintage, poate sa o inlocuiasca asa cum apare in figura 1 in timpul migrarii. Primele lucruri care trebuie facut in timpul migrarii sunt la nivelul de dependencies care sunt folosite.

Prima este junit-vintage-engine (fig 2). Apartine JUnit 5 dar asigura compatibilitatea cu versiunile anterioare ale JUnit. Introducerea acestei dependency este primul pas in procesul de migrare. Testele JUnit 4 si JUnit 5 pot sa coexiste in cadrul aceluiasi proiect pana cand procesul de migrare este finalizat.

Fig 2 JUnit Vintage Maven dependency

In rularea testelor JUnit 4 acum, putem sa vedem ca sunt executate cu succes, dupa cum se arata in figura 3. Faptul ca lucram cu JUnit 5 Vintage dependency in locul JUnit 4 dependency nu are nici un impact.

Fig. 3 Rularea testelor JUnit 4 dupa inlocuirea JUnit 4 dependency cu JUnit 5 Vintage

Dupa introducerea JUnit Vintage dependency, migrarea poate sa continue prin introducerea adnotarilor si functionalitatilor JUnit 5 Jupiter. Dependencies necesare apar in figura 4.

Fig 4 Cele mai utile JUnit Jupiter Maven dependencies

Pentru a scrie teste folosind JUnit 5, vom avea intotdeauna nevoie de junit-jupiter-api si junit-jupiter-engine dependencies. Prima reprezinta un API pentru scrierea de teste cu JUnit Jupiter (inclusiv adnotarile, clasele si metodele catre care se migreaza). Cea de-a doua reprezinta pachetul de baza JUnit Jupiter pentru execution test engine.

O dependency aditionala de care s-ar putea sa avem nevoie este junit-jupiter-params (pentru rularea testelor parametrizate). La finalul procesului de migrare (cand nu mai sunt teste JUnit 4), putem sa scoatem junit-vintage-engine dependency, care apare in fig 2.

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