Dependency Injection si Testing in JUnit 5. Partea a doua

Luxoft Training
2 min readMay 13, 2020

--

A venit momentul pentru cel de-al doilea articol din seria noastra despre Dependency Injection si Testing in JUnit 5. De data aceasta ne uitam la teste repetate.

2. Teste repetate

JUnit 5 ofera posibilitatea de a repeta un test de mai multe ori atat timp cat adnotam o metoda cu @RepeatedTest si specificam numarul de repetari dorit. Acest lucru este util atunci cand anumite conditii se pot schimba de la un test la altul. Fiecare invocare a unui test repetat se comporta precum executia unei @Test method normale cu full support pentru lifecycle callbacks si extensii.

Pe langa specificarea numarului de repetitii, un nume personalizat poate sa fie configurat pentru fiecare repetitie prin intermediul atributului nume a adnotarii @RepeatedTest. Urmatoarele placeholdersexista in acest moment:

  • {displayName}: arata numele metodei @RepeatedTest
  • {currentRepetition}: numarul curent al repetarii
  • {totalRepetitions}: numarul total de repetari

Listing 3 arata folosirea testelor repetate, folosirea display name placeholders si folosirea parametrilor RepetitionInfo. Scenariul primul test repetat verifica faptul ca executia metodei add din clasa Calculator este stabila si ofera intotdeauna acelasi rezultat. Scenariul celui de-al doilea test repetat verifica daca colectiile adopta comportamentul potrivit: o lista primeste un nou element la fiecre iteratie, dar un set nu o sa primeaza elemente duplicate, chiar daca incercam sa le inseram de cateva ori.

Legat de exemplul de mai sus remarcam urmatoarele aspecte:

  1. Primul test este repetat de 5 ori si pentru fiecare repetitie vedem display name, numarul curent al repetitie si numarul total de repetitii (1).
  2. Cel de-al doilea test este repetat de 5 ori si pentru fiecare repetitie vedem numarul de elemente din lista (adica numarul repetitie) si faptul ca setul are doar un element (2).
  3. La executia fiecarui al doilea test repetat, numarul repetitiei este aratat pe masura ce este introdus in parametrul RepetitionInfo (3).

Rezultatul executiei testelor anterioare apare la fig 2 si 3.

Numele testelor repetate in timpul executiei

Numele afisat de fiecare al doilea test repetat

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