Arhitectura JUnit 5. Partea a treia

In cel de-al treilea articol din seria noastra despre arhitectura JUnit 5 analizam rules vs extension model. Lectura placuta.

Jun 10, 2020 62

6. Rules vs extension model

Pentru a putea pune fata in fata modelul bazat pe reguli din JUnit 4 si extension model din JUnit 5, folosim clasa Calculator (imagine 1). Clasa este utila pentru operatii matematice si in mod specific suntem interesati sa testam metodele care ar putea sa genereze exceptii. O regula este ExpectedException care poate sa fie inlocuita cu usurinta cu metoda JUnit 5 assertThrows.

Extended Calculator Class.JPG


Logica care ar putea sa genereze exceptii in cadrul clasei Calculator ar avea urmatorii pasi:

  1. Declaram o metoda de a calcula radacina patrata a unui numar (1). Daca numarul este negativ, o exceptie care contine un anumit mesaj este creata si afisata (2).
  2. Declaram o metoda prin care impartim doua numere (3). Daca cel de-al doilea numar este zero, o exceptie care contine un anumit mesaj este creata si afisata (4).


Lista 2 arata un exemplu care specifica ce mesaj legat de exceptie poate sa apara in timpul executiei codului de test folosind noua functionalitate a clasei Calculator de mai sus.

The JUnit4RuleExceptionTester class.JPG


In exemplul anterior JUnit 4, facem urmatoarele lucruri:

  1. Declaram un camp ExpectedException adnotat cu @Rule. Adnotarea @Rule trebuie sa fie aplicata fie pe un camp public non-static, fie pe o metoda publica non-statica (1). Metoda factory ExpectedException.none() creaza o ExpectedException neconfigurata.
  2. Initializam o instanta a clasei Calculator a carei functionalitate o testam (2).
  3. ExpectedException este configurata pentru a pastra tipul exceptiei (3) si mesajul (4), inainte de a fi eliminata prin invocarea metodei sqrt (5).
  4. ExpectedException este configurata pentru a pastra tipul exceptiei (6) si mesajul (7), inainte de a fi eliminata prin invocarea metodei divide(8).

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.