Migrarea de la JUnit 4 la JUnit 5: inlocuirea regulilor cu extension model. Partea 2

In cea de-a doua parte a seriei noastre de articole legate de migrarea de la JUnit 4 la JUnit 5 discutam despre noua abordare cu care vine Junit 5.

Jan 7, 2020 182
In cea de-a doua parte a seriei noastre de articole legate de migrarea de la JUnit 4 la JUnit 5 discutam despre noua abordare cu care vine Junit 5.


Listing 3 JUnit5ExceptionTester class

The JUnit5ExceptionTester class 1.PNG

In cadrul acestui exemplu legat de JUnit 5 vom face urmatoarele lucruri:

  1. Initializam o instanta a clasei Calculator a carei functionalitate o testam (1’).
  2. Presupunem ca executia calculator.sqrt(-1) genereaza un IllegalArgumentException(2’)
  3. Presupunem ca executia calculator.divide(1,0) genereaza o ArithmeticException(3’)

Remarcam diferenta clara in ceea ce priveste claritatea si lungimea codului intre JUnit 4 si JUnit 5. Codul folosit pentru test in JUnit 5 are 13 linii, iar cel folosit in JUNit 4 are 20. Nu trebuie sa initializam sau sa coordonam alte reguli aditionale. Metodele de testare JUnit 5 contin o linie fiecare.


Testarea folderelor temporare

O alta regula folosita destul de mult este TemporaryFolder. Regula TemporaryFolder permite crearea de fisiere si foldere care ar trebui sa fie sterse cand metoda de testare se incheie (indiferent ca trece sau esueaza). Regula JUnit 4 a fost inlocuita cu adnotarea @TempDir in JUnit 5. Listing 4 de mai jos prezinta aboordarea JUnit 4.


Listing 4 JUnit4RuleTester class

The JUnit4RuleTester class 2.PNG

In acest exemplu facem urmatoarele lucruri:

  1. Declaram campul TemporaryFolder adnotat cu @Rule si il initializam. Adnotarea @Rule trebuie sa fie aplicata fie pe un camp public, fie pe o metoda publica (1)
  2. Folosim campul TemporaryFolder pentru a crea un fisier si un folder (2). Acestea se gasesc in folderul Temp al profilului de utilizator in sistemul tau de operare.
  3. Verificam existenta folderului si fisierului temporar (3)

Acum este momentul sa vedem cum abordeaza JUnit 5 acest lucru (Listing 5).


Listing 5 JUnit5TempDirTester

The JUnit5TempDirTester class 3.PNG

In cadrul exemplului JUnit 5 anterior facem urmatoarele lucruri:

  1. Declaram un camp adnotat @TempDir (1’)
  2. Verificam crearea acestui director temporar inainte de a executa testul (2’)
  3. Cream un fisier in cadrul acestui director si verificam daca exista (3’)

Avantajul abordarii oferite de JUnit 5 extension este ca nu trebuie sa cream noi folderul prin intermediul unui constructor, ci folderul este creat automat imediat ce adnotam campul cu un @TempDir.

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.