'Y'

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 287
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!




Mai ai intrebari?
Contacteaza-ne.
Thank you.
Your request has been received.