Junit 5 — nowe podejscie, nowa funkcjonalnosc
Junit to framework testowy dla języków programowania Java. Wersja Junit 5 została przeprojektowana, aby rozwiązać niektóre wyzwania poprzednich wersji. Przedstawia także nową architekturę, która oferuje możliwość tworzenia hierarchii testów, z twierdzeniami i założeniami, z testami dynamicznymi i sparametryzowanymi. Ten artykuł stanowi krótkie wprowadzenie do Junit 5, aby pomóc Ci zrozumieć nową architekturę i funkcje, które się z nim wiążą.
Jako framework do testowania jednostek dla języka programowania Java, Junit jest bardzo ważnym narzędziem do rozwoju opartego na testach. Jest częścią rodziny frameworków testowych o nazwie xUnit. Junit jest związany podczas kompilacji jako plik JAR i jest najczęściej włączaną biblioteką zewnętrzną w projektach Java.
TDD (Test Driven Development) to proces rozwoju oprogramowania oparty na powtarzaniu krótkiego cyklu: najpierw wymagania są przekształcane w konkretne przypadki testowe, a następnie oprogramowanie jest ulepszane, aby mogło przejść nowe testy. Różni się to od podejścia, w którym oprogramowanie zostało opracowane bez udowodnienia, że może spełnić wszystkie wymagania.
Niektóre zalety TDD to:
- Fakt, że programista ma jasne cele
- Kod jest bezpieczniejszy
- Prawidłowy kod można izolować
- Nowe funkcje można łatwiej wprowadzić
- Testy dokumentują aplikację
Wyzwania Junit 4
JUnit 4, który pojawił się w 2006 roku, ma prostą i monolityczną architekturę. Cała funkcjonalność jest skoncentrowana w jednym pliku JAR. Pomimo pozornej prostoty, na początku pojawiło się kilka problemów, które z czasem uległy pogorszeniu.
Fakt, że istniejący interfejs API nie jest elastyczny, zmusił IDE i narzędzia, które korzystały z Junit, do pełnego z nim połączenia. Konieczne było uzyskanie dostępu do wewnętrznej implementacji JUNit lub nawet użycie odzwierciedlenia w celu uzyskania niezbędnych informacji.
W związku z powyższym, ponieważ wszyscy korzystali z tego samego pliku JAR, a IDE były z nim silnie powiązane, sposoby jego ewolucji były poważnie utrudnione. Zmiana zmiennej lub metody prywatnej może mieć wpływ na tych, którzy używali jej zewnętrznie. Potrzebny był nowy interfejs API zaprojektowany dla tego typu narzędzi i nowa architektura, aby zapewnić jego dalszą ewolucję.
Nowe podejście modułowe
Potrzebne było nowe podejście, modułowe, aby Junit mógł ewoluować. Wymagało to:
- Interfejsu API do pisania testów, dedykowanego przede wszystkim programistom
- Mechanizmu wykrywania i uruchamiania testów
- Interfejsu API, który umożliwia łatwą interakcję z IDE i narzędziami do testowania
W rezultacie architektura Junit 5 ma 3 moduły:
- Junit Platform
- Junit Jupiter
- Junit Vintage
Platforma Junit służy do uruchamiania środowiska testowego na wirtualnej maszynie Java. Oferuje także interfejs API do uruchamiania testu z konsoli, IDE lub innych narzędzi.
JUnit Jupiter to połączenie nowego modelu programowania i modelu rozszerzenia do pisania testów i rozszerzeń w Junit 5.
Junit Vintage oferuje mechanizm testowy do uruchomienia testów Junit 3 i Junit 4 na nowej platformie, zapewniając niezbędną kompatybilność.
Zainteresowany Junit? Sprawdź nasze szkolenia.
Originally published at https://www.luxoft-training.pl.