Arhitectura JUnit 5. Partea a treia
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.
10 Jun 2020
615
Other articles
Object-relational Mapping folosind JPA, Hibernate si Spring Data JPA. Persistence cu JPA
Cum sa interogam Kafka Streaming Data?
Procrastinarea. Care sunt avantajele ei?
Object-relational Mapping folosind JPA, Hibernate si Spring Data JPA
Procrastinarea
Cerinte. De ce avem nevoie de ele?
Dezvolta-ti abilitatile cu training-urile noastre
Programarea reactiva Java. Implementari
Testarea software. Intrebari tipice si raspunsuri. Continuare
Testarea software. Intrebari tipice si raspunsuri
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.
Logica care ar putea sa genereze exceptii in cadrul clasei Calculator ar avea urmatorii pasi:
- 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).
- 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.
In exemplul anterior JUnit 4, facem urmatoarele lucruri:
- 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.
- Initializam o instanta a clasei Calculator a carei functionalitate o testam (2).
- ExpectedException este configurata pentru a pastra tipul exceptiei (3) si mesajul (4), inainte de a fi eliminata prin invocarea metodei sqrt (5).
- 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