Architektura JUnit 5
Architektura JUnit 5
Streszczenie: W tym artykule omówimy nową architekturę Junit 5, niedociągnięcia poprzedniej wersji JUnit 4 oraz sposób, w jaki podejście modułowe zmieniło stan rzeczy i jakie korzyści przyniosło. Pokażemy też, jak przeprowadzić migrację kodu JUnit 4 do JUnit 5, wykorzystując nowe funkcje.
13 kwi 2021
634
Other articles
Testowanie aplikacji za pomocą JUnit5 i JMock. Część 2
Jak przygotować się do certyfikacji IIBA. Wyzwania i hacki
Testowanie aplikacji za pomocą JUnit5 i Mockito. Część 2
Testowanie aplikacji za pomocą JUnit5 i Mockito. Część 1
Testowanie aplikacji za pomocą JUnit5 i EasyMock. Część 2
Testowanie aplikacji za pomocą JUnit5 i EasyMock. Część 1
Test Driven Development z użyciem JUnit 5. Część 6
Test Driven Development z użyciem JUnit 5. Część 5
Test Driven Development z użyciem JUnit 5. Część 4
Test Driven Development z uzyciem JUnit 5. Czesc 3
Streszczenie: W tym artykule omówimy nową architekturę Junit 5, niedociągnięcia poprzedniej wersji JUnit 4 oraz sposób, w jaki podejście modułowe zmieniło stan rzeczy i jakie korzyści przyniosło. Pokażemy też, jak przeprowadzić migrację kodu JUnit 4 do JUnit 5, wykorzystując nowe funkcje.
Aby umożliwić ewolucję struktury JUnit, konieczne było nowe podejście, modułowe. Jego architektura musiała umożliwiać JUnit interakcję z różnymi zautomatyzowanymi klientami za pomocą różnych narzędzi i IDE. Logika w kontekście obaw wymagała:
W konsekwencji powstała architektura JUnit 5 zawiera trzy moduły (Rys.1):
1.Modułowość JUnit 5
JUnit 5 znaczy, że nadszedł czas na nowe podejście. Nie przyszło to jednak natychmiast; wymagało refleksji, a niedociągnięcia JUnit 4 stały się dobrym wkładem do potrzebnych ulepszeń. Architekci znają te problemy i zdecydowali się pójść drogą redukcji rozmiarów i modułowości.Aby umożliwić ewolucję struktury JUnit, konieczne było nowe podejście, modułowe. Jego architektura musiała umożliwiać JUnit interakcję z różnymi zautomatyzowanymi klientami za pomocą różnych narzędzi i IDE. Logika w kontekście obaw wymagała:
- API do pisania testów, dedykowane głównie dla programistów.
- Mechanizm wykrywania i uruchamiania testów.
- API umożliwiające łatwą interakcję z IDE i narzędziami oraz uruchamianie z nich testów.
W konsekwencji powstała architektura JUnit 5 zawiera trzy moduły (Rys.1):
- JUnit Platform, które służy jako podstawa do uruchamiania frameworków testowych na JVM (Java Virtual Machine), dostarcza również API do uruchamiania testów z konsoli, IDE lub narzędzi do budowania.
- JUnit Jupiter, połączenie nowego modelu programowania i modelu rozszerzeń do pisania testów i rozszerzeń w JUnit 5. Nazwa została wybrana z piątej planety naszego Układu Słonecznego, która jest również największa.
- JUnit Vintage, silnik testowy do uruchamiania testów opartych na JUnit 3 i JUnit 4 na platformie, zapewniający niezbędną kompatybilność wsteczną.
Rysunek 1 Modułowa architektura JUnit 5
2. JUnit 5 Platform
Idąc dalej z ideą modułowości, przyjrzymy się pokrótce artefaktom zawartym w platformie JUnit 5 (Rys. 2):- junit-platform-commons, wewnętrzna wspólna biblioteka JUnit, przeznaczona wyłącznie do użytku z samym frameworkiem JUnit. Jakiekolwiek użycie przez external parties nie jest obsługiwane.
- junit-platform-console, która zapewnia obsługę wykrywania i wykonywania testów na platformie JUnit z poziomu konsoli.
- junit-platform-console-standalone wykonywalny plik JAR zawierający wszystkie zależności. Jest używany przez Console Launcher, aplikację Java uruchamianą z wiersza poleceń, która umożliwia uruchamianie platformy JUnit z konsoli. Na przykład może służyć do uruchamiania testów JUnit Vintage i JUnit Jupiter oraz drukowania wyników testów na konsoli.
- junit-platform-engine, publiczny interfejs API dla silników testowych.
- junit-platform-launcher, publiczny interfejs API do konfigurowania i uruchamiania planów testów, zwykle używany przez IDE i narzędzia do budowania.
- junit-platform-runner, runner do wykonywania testów i zestawów testów na platformie JUnit w środowisku JUnit 4.
- junit-platform-suite-api, który zawiera adnotacje do konfigurowania zestawów testów na platformie JUnit.
- junit-platform-surefire-provider, który zapewnia obsługę wykrywania i wykonywania testów na platformie JUnit przy użyciu wtyczki Maven Surefire.junit-platform-gradle-plugin, która zapewnia obsługę wykrywania i wykonywania testów na platformie JUnit za pomocą Gradle.
Interesujesz się Javą? Sprawdź nasze szkolenia
Catalin Tudose
Java and Web Technologies Expert