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

In cea de-a treia parte a articolului discutam despre testarea cu reguli personalizate si extensii in Junit.

Jan 15, 2020 50
In cea de-a treia parte a articolului discutam despre testarea cu reguli personalizate si extensii in Junit.


4. Testarea cu reguli personalizate si extensii

Ne mutam acum atentia catre inlocuirea regulilor personalizate. Acestea sunt utile mai ales cand anumite tipuri de teste au nevoie de actiuni similare inainte si dupa executie.

Pentru aceasta demonstratie ne-am creat propriile clase care implementeaza interfata TestRule. Ca acest lucru sa se intample, trebuie sa trecem peste metoda apply (Statement, Description) care declara o instanta a Statement. Un asemenea obiect reprezinta testele din cadrul JUnit runtime si le evalueaza cu Statement#evaluate()runs. Obiectul Description descrie testul individual. Il putem folosi sa citim informatii despre test prin reflective.


Listing 6 Clasa CustomRule class

CustomRule class JUnit.PNG


Pentru a arata in mod clar cum sa definim regulile noastre, ne uitam la listing 6, unde facem urmatoarele lucruri:

  1. Declaram clasa noastra CustomRule care implementeaza interfata TestRule (1)
  2. Pastram referintele intr-un camp Statement si unul Description (2) si le folosim in cadrul metodei applu care returneaza o CustomStatement (3)


Listing 7 Clasa CustomStatement

CustomStatement class JUnit.PNG

In listing 7, facem urmatoarele lucruri:

  1. Declaram clasa CustomStatement care extinde clasa Statement
  2. Pastram referintele intr-un camp Statement si unul Description (2) si le folosim ca argumente ale constructorului (3)
  3. Trecem peste metoda evaluate mostenita si apelam base.evaluate() in cadrul ei (4)

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.