JUnit Test sparametryzowany z przykładem przy użyciu @Parameters

Czym jest test parametryczny w Junit?

Test parametryczny polega na powtarzaniu tego samego testu przy użyciu różnych wartości. Pomaga programiście zaoszczędzić czas na wykonywaniu tego samego testu, który różni się jedynie danymi wejściowymi i oczekiwanymi wynikami.

Korzystając z testu sparametryzowanego, można skonfigurować metodę testową, która pobiera dane z jakiegoś źródła danych.

Rozważ prosty test sumowania różnych liczb. Kod może wyglądać tak –

Test sparametryzowany w Junit

Powyższe podejście prowadzi do dużej redundancji.

Potrzebujemy prostego podejścia i. Używając testu sparametryzowanego, możesz po prostu dodać metodę wprowadzania 10 danych wejściowych, a test zostanie uruchomiony automatycznie 10 razy.

Kroki tworzenia pliku sparametryzowanego JUnit test

Poniższy kod pokazuje przykład testu parametrycznego. Testuje metodę sum() klasy Arithmetic:

Krok 1) Utwórz klasę. W tym przykładzie wprowadzimy dwie liczby za pomocą metody sum (int,int), która zwróci sumę podanych liczb.

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Krok 2) Utwórz sparametryzowaną klasę testową

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Objaśnienie kodu

  • Linia kodu 11: Dodaj adnotację do swojej klasy testowej, używając @runWith(Parameterized.class).
  • Linia kodu 13: Deklarowanie zmiennej „firstNumber” jako prywatnej i wpisywanie jako int.
  • Linia kodu 14: Deklarowanie zmiennej „drugiNumber” jako prywatnej i wpisywanie jako int.
  • Linia kodu 15: Deklarowanie zmiennej „expectedResult” jako prywatnej i wpisywanie jako int.
  • Linia kodu 16: Deklarowanie zmiennej „airthematic” jako prywatnej i typ jako Airthematic.

@Biegnij z(nazwa_klasy.klasa): @Biegnij z adnotacja służy do określenia nazwy klasy modułu uruchamiającego. Jeśli nie określimy żadnego typu jako parametru, środowisko wykonawcze dokona wyboru BlokujJunit4ClassRunner domyślnie.

Ta klasa jest odpowiedzialna za uruchamianie testów z nową instancją testową. Odpowiada za wywoływanie JUnit metody cyklu życia, takie jak konfiguracja (powiązanie zasobów) i rozbiórka (zwolnienie zasobów).

Aby sparametryzować, musisz dodać adnotację za pomocą @RunWith i przekazać wymaganą klasę do przetestowania

Krok 3) Utwórz konstruktor przechowujący dane testowe. Przechowuje 3 zmienne

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Krok 4) Utwórz metodę statyczną, która generuje i zwraca dane testowe.

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Linia kodu 32,33: Tworzenie tablicy dwuwymiarowej (podanie parametrów wejściowych do dodania). Za pomocą metody asList konwertujemy dane na typ List. Ponieważ zwracanym typem danych wejściowych metody jest kolekcja.

Linia kodu 30: Korzystanie z @Parametry adnotacja tworząca zestaw danych wejściowych do uruchomienia naszego testu.

Metoda statyczna identyfikowana przez adnotację @Parameters zwraca kolekcję, w której każdy wpis w kolekcji będzie danymi wejściowymi dla jednej iteracji testu.

Rozważ element

1,2,3 {}

Tutaj

pierwszy numer = 1

drugi numer = 2

oczekiwany wynik=3

W tym przypadku każdy element tablicy będzie przekazywany do konstruktora pojedynczo, podczas wielokrotnego tworzenia instancji klasy.

Krok 5) Kompletny kod

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Wyjaśnienie kodu:

  • Linia kodu 25: Użycie adnotacji @Before do skonfigurowania zasobów (tutaj Airthematic.class). Adnotacja @Before jest tutaj używana do uruchamiania przed każdym przypadkiem testowym. Zawiera warunek wstępny testu.
  • Linia kodu 36: Użycie adnotacji @Test do stworzenia naszego testu.
  • Linia kodu 39: Tworzenie instrukcji asert w celu sprawdzenia, czy nasza suma jest równa oczekiwanej.

Krok 6) Utwórz klasę uruchamiającą test, aby uruchomić test sparametryzowany:

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Wyjaśnienie kodu:

  • Linia kodu 8: Deklarowanie głównej metody testu klasy, która będzie uruchamiana przez naszą klasę JUnit test.
  • Linia kodu 9: Podczas wykonywania przypadków testowych za pomocą JunitCore.runclasses nazwa klasy testowej będzie przyjmowana jako parametr (w naszym przykładzie używamy Airthematic.class).
  • Linia kodu 11: Przetwarzanie wyniku za pomocą pętli for i wydrukowanie wyniku nie powiodło się.
  • Linia kodu 13: Drukowanie pomyślnego wyniku.

Wyjście:

Oto dane wyjściowe pokazujące pomyślny test bez śladów awarii, jak podano poniżej:

Kroki tworzenia pliku sparametryzowanego JUnit Testowanie

Zobacz wynik na konsoli, który pokazuje dodawanie dwóch liczb:

JUnit Test sparametryzowany

Podsumowanie

Test sparametryzowany umożliwia programiście wykonywanie tego samego testu w kółko przy użyciu różnych wartości.

Ważne adnotacje, które należy stosować podczas parametryzacji

  • @Biegnij z
  • @Parametry