JUnit parametrizovaný test s příkladem pomocí @Parameters

Obsah:

Anonim

Co je parametrizovaný test v Junitu?

Parametrizovaným testem je provádění stejného testu znovu a znovu s použitím různých hodnot. Pomáhá vývojáři ušetřit čas při provádění stejného testu, který se liší pouze jejich vstupy a očekávanými výsledky.

Pomocí parametrizovaného testu lze nastavit testovací metodu, která načte data z nějakého zdroje dat.

Zvažte jednoduchý test pro součet různých čísel. Kód může vypadat jako -

Výše uvedený přístup vede k velké nadbytečnosti.

Potřebujeme jednoduchý přístup a. Pomocí parametrizovaného testu stačí přidat metodu pro vstup 10 datových vstupů a váš test proběhne 10krát automaticky.

Kroky k vytvoření parametrizovaného testu JUnit

Následující kód ukazuje příklad parametrizovaného testu. Testuje metodu sum () třídy Arithmetic:

Krok 1) Vytvořte třídu. V tomto příkladu zadáme dvě čísla pomocí metody sum (int, int), která vrátí součet daných čísel

Krok 2) Vytvořte parametrizovanou testovací třídu

Vysvětlení kódu

  • Řádek kódu 11: Anotujte svoji testovací třídu pomocí @runWith (Parameterized.class).
  • Řádek kódu 13: Deklarace proměnné 'firstNumber' jako soukromé a zadejte jako int.
  • Řádek kódu 14: Deklarace proměnné „secondNumber“ jako soukromé a zadejte jako int.
  • Řádek kódu 15: Deklarace proměnné 'expectResult' jako soukromé a zadejte jako int.
  • Řádek kódu 16: Deklarace proměnné 'airthematic' jako soukromé a zadejte jako Airthematic.

@RunWith ( class_name.class ): @RunWith anotace se používá k určení názvu třídy běžce. Pokud nezadáme žádný typ jako parametr, runtime ve výchozím nastavení vybere BlockJunit4ClassRunner .

Tato třída je zodpovědná za spuštění testů s novou instancí testu. Je zodpovědný za vyvolání metod životního cyklu JUnit, jako je instalace (přidružení zdrojů) a teardown (uvolnění prostředků).

Chcete-li parametrizovat, musíte anotovat pomocí @RunWith a předat požadovanou .class k testování

Krok 3) Vytvořte konstruktor, který uloží data testu. Ukládá 3 proměnné

Krok 4) Vytvořte statickou metodu, která generuje a vrací testovací data.

Řádek kódu 32,33: Vytvoření dvourozměrného pole (poskytnutí vstupních parametrů pro přidání). Pomocí metody asList převedeme data na typ seznamu. Protože návratový typ vstupu metody je kolekce.

Řádek kódu 30: Použití anotace @Parameters k vytvoření sady vstupních dat pro spuštění našeho testu.

Statická metoda identifikovaná anotací @Parameters vrací kolekci, kde každá položka v kolekci bude vstupními daty pro jednu iteraci testu.

Zvažte toho elemenenta

{1,2,3}

Tady

firstNumber = 1

druhé číslo = 2

expectResult = 3

Zde bude každý prvek pole předán konstruktoru, jeden po druhém, protože třída je vytvořena vícekrát.

Krok 5) Celý kód

Vysvětlení kódu:

  • Řádek kódu 25: Použití anotace @Before k nastavení zdrojů (Airthematic.class zde). Anotace @Before se zde používá ke spuštění před každým testovacím případem. Obsahuje předpoklad zkoušky.
  • Řádek kódu 36: Použití anotace @Test k vytvoření našeho testu.
  • Řádek kódu 39: Vytvoření příkazu assert ke kontrole, zda je náš součet ekvivalentní tomu, co jsme očekávali.

Krok 6) Vytvořte třídu testovacího běžce pro spuštění parametrizovaného testu:

Vysvětlení kódu:

  • Řádek kódu 8: Deklarace hlavní metody třídního testu, který spustí náš test JUnit.
  • Řádek kódu 9: Provádění testovacích případů pomocí JunitCore.runclasses, vezme název testovací třídy jako parametr (v našem příkladu používáme Airthematic.class).
  • Řádek kódu 11: Zpracování výsledku pomocí smyčky for a tisk neúspěšného výsledku.
  • Řádek kódu 13: Tisk úspěšného výsledku.

Výstup:

Zde je výstup, který zobrazuje úspěšný test bez trasování selhání, jak je uvedeno níže:

Podívejte se na výsledek na konzole, který ukazuje přidání dvou čísel: -

Shrnutí :

Parametrizovaný test umožňuje vývojářům provádět stejný test znovu a znovu s použitím různých hodnot.

Důležité poznámky, které se mají použít během parametrizace

  • @RunWith
  • @ Parametry