Arhitectura Junit 5
Arhitectura Junit 5
In cadrul aceste serii de articole vom aborda noua arhitectura a Junit 5, neajunsurile versiunii JUnit 4, felul in care abordarea modulara a schimbat lucrurile si avantajele acesteia. Mai mult ne vom uita si la cum putem migra codul din JUnit 4 in JUnit 5, folosind noile functionalitati.
12 May 2020
821
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
In cadrul aceste serii de articole vom aborda noua arhitectura a Junit 5, neajunsurile versiunii JUnit 4, felul in care abordarea modulara a schimbat lucrurile si avantajele acesteia. Mai mult ne vom uita si la cum putem migra codul din JUnit 4 in JUnit 5, folosind noile functionalitati.
JUnit 5 vine cu o noua abordare. Nu a fost ceva care a aparut instant; a necesitat reflectie si neajunsurile JUnit 4 reprezinta un input bun pentru noile imbunatatiri. Arhitectii din spatele acestei solutii stiau care sunt problemele si au decis sa urmeze calea unei dimensiuni reduse si a modularitatii.
O noua abordare, una modulara, era necesara pentru a permite evolutia framework-ului JUnit. Arhitectura acesteia trebuia sa permita JUnit 5 sa interactioneze cu diferiti clienti programatici, cu diferite instrumente si cu difeite IDE. Era astfel nevoie de:
Astfel ca arhitectura JUnit 5 include 3 module (fig. 1):
Mergand mai departe pe idea de modularitate, ne vom uita pe scurt la artefactele din cadrul platformei JUnit 5 (fig. 2):
Java and Web Technologies Expert
1. Modularitatea JUnit 5
JUnit 5 vine cu o noua abordare. Nu a fost ceva care a aparut instant; a necesitat reflectie si neajunsurile JUnit 4 reprezinta un input bun pentru noile imbunatatiri. Arhitectii din spatele acestei solutii stiau care sunt problemele si au decis sa urmeze calea unei dimensiuni reduse si a modularitatii.
O noua abordare, una modulara, era necesara pentru a permite evolutia framework-ului JUnit. Arhitectura acesteia trebuia sa permita JUnit 5 sa interactioneze cu diferiti clienti programatici, cu diferite instrumente si cu difeite IDE. Era astfel nevoie de:
- Un API pentru a scrie teste. Dedicat in principal programatorilor.
- Un mecanism pentru a descoperi si rula teste.
- Un API care sa permita o interactiune cat mai usoara cu IDE si alte instrumente. Si care sa permita rularea de teste.
Astfel ca arhitectura JUnit 5 include 3 module (fig. 1):
- JUnit Platform, care este ca o fundatie pe baza careia poti sa lansezi framework-uri de testare pe JVM (Java Virtual Machine). Ofera si un API pentru a lansa teste din consola, IDE sau build tools.
- JUnit Jupiter, combinatia dintre noul model de programare si extension model pentru scrierea de teste si extensii in JUnit 5. Are numele celei de-a cincea planete din sistemul nostru solar, care este si cea mai mare.
- JUnit Vintage, un test engine pentru rularea testelor bazate pe JUnit 3 si JUnit 4 pe platforma. Asigura compatibilitatea.
Figure 1 Arhitectura modulara a JUnit 5
2. Platforma JUnit 5
Mergand mai departe pe idea de modularitate, ne vom uita pe scurt la artefactele din cadrul platformei JUnit 5 (fig. 2):
- junit-platform-commons, o librarie interna comuna a JUnit, care poate sa fie folosita doar in cadrul framework-ului JUnit. Alte programe externe nu o pot folosi.
- junit-platform-console, ajuta la descoperirea si executia de teste din consola, pe platforma JUnit.
- junit-platform-console-standalone este un executabil JAR cu toate dependentele incluse. Este folosit de Console Launcher, o aplicatie command-line Java care te lasa sa lansezi platforma JUnit din consola. Spre exemplu, poate sa fie folosit pentru a rula teste JUnit Vintage si JUnit Jupiter ca mai apoi sa afiseze rezultatele executiei in consola.
- junit-platform-engine, un API public pentru test engines.
- junit-platform-launcher, un API public pentru configurarea si lansarea de test plans, folosite in mod tipic de IDE si build tools.
- junit-platform-runner, un runner pentru executia testelor si a test suites pe platforma JUnit intr-un mediu JUnit 4.
- junit-platform-suite-api, care contine adnotarile pentru configurarea suitelor de teste pe platforma JUnit.
- junit-platform-surefire-provider, care ofera suport pentru a descoperi si executa teste pe platforma JUnit folosind Maven Surefire.junit-platform-gradle-plugin. Acesta ofera suport pentru a descoperi si executa teste pe plaforma JUnit folosind Gradle.
Vrei sa inveti mai multe despre aceasta tehnologie? Descopera cursurile noastre.
Catalin Tudose
Java and Web Technologies Expert