Architektura JUnit 5. Część 2

Druga część naszej serii artykułów o Architekturze Junit 5. Tym razem przyjrzymy się JUnit 5 Jupiter, JUnit 5 Vintage i nie tylko.

kwi 26, 2021 190

3. JUnit 5 Jupiter

JUnit Jupiter to połączenie nowego modelu programowania (adnotacje, klasy, metody) i modelu rozszerzeń do pisania testów i rozszerzeń w JUnit 5. Podprojekt Jupiter dostarcza TestEngine do uruchamiania testów Jupiter opartych na platformie. W przeciwieństwie do wcześniej istniejących runnerów i punktów rozszerzeń reguł w JUnit 4, model rozszerzeń JUnit Jupiter składa się z jednej, spójnej koncepcji: Extension API.

Artefakty zawarte w JUnit Jupiter to:

  • junit-jupiter-api, JUnit Jupiter API do pisania testów i rozszerzeń
  • junit-jupiter-engine, implementacja silnika testowego JUnit Jupiter, wymagana tylko w czasie wykonywania
  • junit-jupiter-params, który zapewnia obsługę testów sparametryzowanych w JUnit Jupiter
  • junit-jupiter-migrationsupport, która zapewnia obsługę migracji z JUnit 4 do JUnit Jupiter i jest wymagana tylko do uruchamiania wybranych reguł JUnit 4


4. JUnit 5 Vintage

JUnit Vintage dostarcza TestEngine do uruchamiania testów opartych na JUnit 3 i JUnit 4 na platformie. JUnit 5 Vintage zawiera tylko silnik junit-vintage-engine, implementację silnika do wykonywania testów napisanych w JUnit 3 lub 4. W tym celu potrzebujesz również JUnit 3 lub 4 JAR.

Jest to przydatne do interakcji ze starymi testami już za pośrednictwem JUnit 5. Prawdopodobnie będziesz potrzebował JUnit 5 do pracy nad swoimi projektami, ale wciąż wsparcia dla starych testów. JUnit 5 Vintage jest rozwiązaniem na tę sytuację!


5. Szeroki obraz architektury JUnit 5

Aby na wszystko spojrzeć "od początku do końca" i pokazać, jak działa pełna architektura, powiemy, że platforma JUnit dostarcza narzędzia do przeprowadzania różnego rodzaju testów: testy JUnit 5, stare testy JUnit 3 i 4, oraz testy third-party (Rysunek 2).

big picture JUnit 5 architecture.png


Rysunek 2 Szeroki obraz architektury JUnit 5.


Bardziej szczegółowo (Rysunek 3):

  • Testowe API dostarcza narzędzia dla różnych silników testowych: junit-jupiter-api dla testów JUnit 5; junit-4.12 dla testów legacy; silniki niestandardowe dla testów third-party
  • Wspomniane wyżej silniki testowe powstały poprzez rozszerzenie publicznego API junit-platform-engine, będącego częścią Platformy JUnit 5
  • Publiczne API junit-platform-launcher dostarcza narzędzia do wykrywania testów wewnątrz platformy JUnit 5, dla narzędzi do budowania, takich jak Maven lub Gradle, lub dla IDE

detailed picture JUnit 5 architecture.png



Rysunek 3 Szczegółowy obraz architektury JUnit 5



Oprócz architektury modułowej, JUnit 5 zapewnia również mechanizm rozszerzeń.

Podkreślamy, że architektura systemu silnie determinuje jego możliwości i zachowanie. Zrozumienie architektury obu JUnit 4 i JUnit 5 pomaga w łatwym zastosowaniu ich możliwości w praktyce, pisaniu wydajnych testów i analizowaniu alternatyw implementacji. Pomaga przyspieszyć tempo zdobywania umiejętności programisty, gdyż opanuje testy jednostkowe.

Interesujesz się Javą? Sprawdź nasze szkolenia.

Catalin Tudose
Java and Web Technologies Expert


Udostępnij


Masz jeszcze jakieś pytania?
Skontaktuj się z nami
Thank you.
Your request has been received.