JUnit Sparametryzowany test z przykładem przy użyciu @Parameters

Spisie treści:

Anonim

Co to jest sparametryzowany test w Junit?

Test sparametryzowany polega na wielokrotnym wykonywaniu tego samego testu przy użyciu różnych wartości. Pomaga programistom zaoszczędzić czas na wykonywaniu tego samego testu, który różni się tylko 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, aby zsumować różne liczby. Kod może wyglądać następująco -

Powyższe podejście prowadzi do dużej nadmiarowości.

Potrzebujemy prostego podejścia i. Korzystając z testu parametryzowanego, możesz po prostu dodać metodę do wprowadzenia 10 danych wejściowych, a test będzie wykonywany automatycznie 10 razy.

Kroki, aby utworzyć sparametryzowany test JUnit

Poniższy kod przedstawia przykład sparametryzowanego testu. 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

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

Objaśnienie kodu

  • Linia kodu 11: dodaj adnotacje do klasy testowej za pomocą @runWith (Parameterized.class).
  • Linia kodu 13: Zadeklarowanie zmiennej „firstNumber” jako prywatnej i wpisanie jako int.
  • Linia kodu 14: Zadeklarowanie zmiennej „secondNumber” jako prywatnej i wpisanie jako int.
  • Linia kodu 15: Zadeklarowanie zmiennej „spodziewany wynik” jako prywatnej i wpisanie jako int.
  • Linia kodu 16: Deklaracja zmiennej „airthematic” jako prywatna i wpisanie jako Airthematic.

@RunWith (class_name.class): @RunWith adnotacja jest używany do określenia jego nazwę klasy biegaczem. Jeśli nie określimy żadnego typu jako parametru, środowisko wykonawcze domyślnie wybierze BlockJunit4ClassRunner .

Ta klasa jest odpowiedzialna za testy do uruchomienia z nową instancją testową. Odpowiada za wywoływanie metod cyklu życia JUnit, takich jak konfiguracja (zasoby skojarzone) i rozerwanie (zasoby zwalniania).

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

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

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

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

Linia kodu 30: Używanie adnotacji @Parameters do tworzenia zestawu danych wejściowych do uruchomienia naszego testu.

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

Rozważmy element

{1, 2, 3}

Tutaj

firstNumber = 1

secondNumber = 2

spodziewanyResult = 3

Tutaj każdy element tablicy zostanie przekazany do konstruktora, po jednym na raz, ponieważ klasa jest tworzona wiele razy.

Krok 5) Pełny kod

Objaśnienie kodu:

  • Linia kodu 25: Używanie adnotacji @Before do konfiguracji zasobów (tutaj Airthematic.class). Adnotacja @Before jest używana tutaj do uruchamiania przed każdym przypadkiem testowym. Zawiera warunek wstępny testu.
  • Linia kodu 36: Używanie adnotacji @Test do tworzenia naszego testu.
  • Linia kodu 39: Tworzenie instrukcji assert w celu sprawdzenia, czy nasza suma jest równoważna temu, czego oczekiwaliśmy.

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

Objaśnienie kodu:

  • Linia kodu 8: Deklaracja głównej metody testu klasy, która uruchomi nasz test JUnit.
  • Linia kodu 9: Wykonywanie przypadków testowych przy użyciu JunitCore.runclasses, weźmie nazwę klasy testowej jako parametr (w naszym przykładzie używamy Airthematic.class).
  • Linia kodu 11: Przetwarzanie wyniku za pomocą pętli for i drukowanie nieudanego wyniku.
  • Linia kodu 13: Drukowanie pomyślnego wyniku.

Wynik:

Oto dane wyjściowe, które pokazują pomyślny test bez śladu awarii, jak podano poniżej:

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

Podsumowanie :

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

Ważne uwagi do wykorzystania podczas parametryzacji

  • @Biegnij z
  • @Parameters