Architektura J Unit 5. Część 3

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

maj 5, 2021 179

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.

Extended Calculator Class.JPG



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.

The JUnit4RuleExceptionTester class.JPG


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

Udostępnij


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