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.
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
Pentru a arata in mod clar cum sa definim regulile noastre, ne uitam la listing 6, unde facem urmatoarele lucruri:
- Declaram clasa noastra CustomRule care implementeaza interfata TestRule (1)
- 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
In listing 7, facem urmatoarele lucruri:
- Declaram clasa CustomStatement care extinde clasa Statement
- Pastram referintele intr-un camp Statement si unul Description (2) si le folosim ca argumente ale constructorului (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
Originally published at https://www.luxoft-training.ro.