JUnit parametrizovaný test s príkladom pomocou @Parameters

Obsah:

Anonim

Čo je parametrizovaný test v Junite?

Parametrizovaným testom je vykonávanie rovnakého testu opakovane s rôznymi hodnotami. Pomáha vývojárovi ušetriť čas pri vykonávaní rovnakého testu, ktorý sa líši iba ich vstupmi a očakávanými výsledkami.

Pomocou parametrizovaného testu je možné nastaviť testovaciu metódu, ktorá načítava údaje z nejakého zdroja údajov.

Zvážte jednoduchý test na sčítanie rôznych čísel. Kód môže vyzerať ako -

Vyššie uvedený prístup vedie k veľkej nadbytočnosti.

Potrebujeme jednoduchý prístup a. Pomocou parametrizovaného testu stačí pridať metódu na zadanie 10 dátových vstupov a váš test prebehne 10-krát automaticky.

Kroky na vytvorenie parametrizovaného testu JUnit

Nasledujúci kód zobrazuje príklad parametrizovaného testu. Testuje metódu súčtu () aritmetickej triedy:

Krok 1) Vytvorte triedu. V tomto príklade zadáme dve čísla pomocou metódy sum (int, int), ktorá vráti súčet daných čísel

Krok 2) Vytvorte parametrizovanú testovaciu triedu

Vysvetlenie kódu

  • Riadok kódu 11: Anotujte svoju testovaciu triedu pomocou @runWith (Parameterized.class).
  • Riadok kódu 13: Deklarácia premennej „firstNumber“ ako súkromnej a typu int.
  • Riadok kódu 14: Deklarovanie premennej „secondNumber“ ako súkromnej a zadanie typu int.
  • Riadok kódu 15: Deklarovanie premennej „expectResult“ ako súkromnej a typu int.
  • Riadok kódu 16: Deklarácia premennej „airthematic“ ako súkromnej a typ ako Airthematic.

@RunWith (class_name.class): anotácia @RunWith sa používa na zadanie názvu triedy bežca. Ak ako parameter nezadáme žiadny typ, runtime predvolene zvolí BlockJunit4ClassRunner .

Táto trieda je zodpovedná za vykonávanie testov s novou inštanciou testu. Je zodpovedný za vyvolanie metód životného cyklu JUnit, ako sú napríklad nastavenie (priradiť zdroje) a teardown (uvoľnenie zdrojov).

Ak chcete parametrizovať, musíte anotovať pomocou @RunWith a odovzdať požadovanú .class, ktorá sa má otestovať

Krok 3) Vytvorte konštruktor, ktorý uloží údaje o teste. Ukladá 3 premenné

Krok 4) Vytvorte statickú metódu, ktorá generuje a vracia testovacie údaje.

Riadok kódu 32,33: Vytvorenie dvojrozmerného poľa (poskytnutie vstupných parametrov na doplnenie). Použitím metódy asList prevedieme dáta do typu List. Pretože návratový typ vstupu metódy je zber.

Riadok kódu 30: Použitie anotácie @Parameters na vytvorenie množiny vstupných údajov na vykonanie nášho testu.

Statická metóda identifikovaná v anotácii @Parameters vráti kolekciu, kde každý záznam v kolekcii bude vstupnými údajmi pre jednu iteráciu testu.

Zvážte elemenenta

{1,2,3}

Tu

firstNumber = 1

druhé číslo = 2

expectResult = 3

Tu bude každý prvok poľa odovzdaný konštruktoru, jeden po druhom, pretože trieda je inštancovaná viackrát.

Krok 5) Celý kód

Vysvetlenie kódu:

  • Riadok kódu 25: Použitie anotácie @Before na nastavenie zdrojov (Airthematic.class tu). Anotácia @Before sa tu používa na spustenie pred každým testovacím prípadom. Obsahuje predpoklad skúšky.
  • Riadok kódu 36: Použitie anotácie @Test na vytvorenie nášho testu.
  • Riadok kódu 39: Vytvorenie vyhlásenia tvrdenia na kontrolu, či je naša suma ekvivalentná tomu, čo sme očakávali.

Krok 6) Vytvorte triedu testovacieho bežca na spustenie parametrizovaného testu:

Vysvetlenie kódu:

  • Riadok kódu 8: Deklarovanie hlavnej metódy triedneho testu, ktorým sa spustí náš test JUnit.
  • Riadok kódu 9: Vykonávanie testovacích prípadov pomocou nástroja JunitCore.runclasses, bude ako parameter brať názov testovacej triedy (v našom príklade používame Airthematic.class).
  • Riadok kódu 11: Spracovanie výsledku pomocou cyklu for a vytlačenie neúspešného výsledku.
  • Riadok kódu 13: Vytlačenie úspešného výsledku.

Výkon:

Tu je výstup, ktorý zobrazuje úspešný test bez sledovania poruchy, ako je uvedené nižšie:

Výsledok nájdete na konzole, ktorá zobrazuje sčítanie dvoch čísel: -

Zhrnutie :

Parametrizovaný test umožňuje vývojárovi opakovane vykonávať rovnaký test s rôznymi hodnotami.

Dôležité parametre, ktoré sa majú použiť počas parametrizácie

  • @RunWith
  • @Parametre