Architektura JUnit 5. Część 3

Luxoft Training
2 min readJul 15, 2021

--

W trzeciej części serii artykułów na temat architektury JUnit 5 przyjrzymy się regułom i modelowi rozszerzeń. Miłego czytania.

6. Reguły kontra model rozszerzeń

Aby stanąć twarzą w twarz — z modelem reguł JUnit 4 i modelem rozszerzenia JUnit 5, użyjmy Calculator class (lista 1). Służy do wykonywania operacji matematycznych, począwszy od weryfikacji testowanych systemów. Jesteśmy zainteresowani testowaniem metod, które mogą generować wyjątki. Jedna reguła to ExpectedException. Można go łatwo zastąpić metodą assertThrows JUnit 5.

Logika, która może “wrzucać” wyjątki do Calculator class, wykonuje następujące czynności:

  • Deklaruje metodę obliczania pierwiastka kwadratowego z liczby (1). W przypadku, gdy liczba jest ujemna, tworzony i generowany jest wyjątek zawierający określoną wiadomość (2).
  • Deklaruje metodę dzielenia dwóch liczb (3). W przypadku, gdy druga liczba to zero, tworzony jest i generowany wyjątek zawierający określoną wiadomość (4).

Listing 2 zawiera przykład, który określa, który komunikat o wyjątku jest oczekiwany podczas wykonywania kodu testowego przy użyciu nowej funkcjonalności powyższego Calculator class.

W poprzednim przykładzie JUnit 4 wykonujemy następujące czynności:

  • Deklarujemy pole ExpectedException z adnotacją @Rule. Adnotację @Rule należy zastosować albo do publicznego pola niestatycznego, albo do publicznej metody niestatycznej (1). Factory method ExpectedException.none () tworzy nieskonfigurowany ExpectedException.
  • Inicjujemy wystąpienie Calculator class, którego funkcjonalność testujemy (2).
  • ExpectedException jest skonfigurowany tak, aby zachować typ wyjątku (3) i komunikat (4), zanim zostanie “wyrzucony” przez wywołanie metody sqrt w linii (5).
  • ExpectedException jest skonfigurowany tak, aby zachować typ wyjątku (6) i komunikat (7), zanim zostanie wyrzucony przez wywołanie metody dzielenia w linii (8).

Interesujesz się Javą? Sprawdź nasze szkolenia.

Catalin Tudose
Java and Web Technologies Expert

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

--

--

No responses yet