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