Junit 5 — Twierdzenia i założenia. Część 1.

Luxoft Training
3 min readJun 3, 2021

Streszczenie: JUnit to framework do testów jednostkowych dla języka programowania Java. Wersja JUnit 5 została przeprojektowana, aby rozwiązać niektóre szczególne problemy z poprzednich wersji. Ma nową architekturę i wiele nowych funkcji. Oprócz tych przedstawionych w naszym poprzednim artykule, omówimy tutaj bardziej szczegółowo twierdzenia i założenia.

  1. Twierdzenia w Junit 5

JUnit Jupiter zawiera więcej metod asercji, które wykonuje JUnit 4. Dodaje kilka, które dobrze nadają się do używania z 8 lambdami Java. Wszystkie asercje JUnit Jupiter są metodami statycznymi w klasie org.junit.jupiter.api.Assertions.

Porównanie asercji w JUnit 4 i JUnit 5 wygląda tak:

Komunikat w asercjach jest ostatnim parametrem metod:

Supplier pozwala na leniwą inicjalizację w przypadku złożonych komunikatów.

Tak wygląda fragment kodu wykorzystujący wiele możliwych twierdzeń:

Metoda assertAll wykona sprawdzanie wszystkich asercji. Ma opcjonalny parametr nagłówka. Parametr nagłówka pozwala rozpoznać grupę asercji w assertAll. Komunikat o awarii metody assertAll pokazuje szczegółowe informacje o każdej asercji pola w grupie.

Metody to:

Tak może wyglądać użycie metod assertAll:

Metoda assertTimeout zastępuje regułę limitu czasu JUnit 4.

assertTimeout czeka na zakończenie działania pliku wykonywalnego. Komunikat o błędzie może wyglądać następująco: przekroczenie limitu czasu 100 ms o 193 ms

assertTimeoutPreemptively zatrzymuje plik wykonywalny, gdy upłynie czas. Komunikat o błędzie może wyglądać następująco: przekroczono limit czasu po 100 ms

Tak może wyglądać użycie metod assertTimeout:

Metoda assertThrows zastępuje regułę JUnit 4 ExpectedException. Wszystkie twierdzenia można składać przeciwko zwróconej instancji rzutu. To sprawia, że testy są bardziej czytelne. Jako pliki wykonywalne możemy używać referencji lambda lub metod.

Metoda to:

Tak może wyglądać użycie metody assertThrows:

Interesuje Cię JUnit? Sprawdź nasze szkolenia.

Catalin Tudose
Java and Web Technologies Expert

Originally published at https://www.luxoft-training.pl.

--

--