JUnit Parametrizovaný test s příkladem pomocí @Parameters
Co je parametrizovaný test v Junit?
Parametrizovaný test má provádět stejný test znovu a znovu s použitím různých hodnot. Pomáhá vývojářům ušetřit čas při provádění stejného testu, který se liší pouze svými vstupy a očekávanými výsledky.
Pomocí parametrizovaného testu lze nastavit testovací metodu, která načítá data z nějakého zdroje dat.
Zvažte jednoduchý test na sečtení různých čísel. Kód může vypadat např.
Výše uvedený přístup vede k velké nadbytečnosti.
Potřebujeme jednoduchý přístup a. Pomocí parametrizovaného testu stačí přidat metodu k zadání 10 datových vstupů a váš test se spustí 10krát automaticky.
Kroky k vytvoření parametrizovaného JUnit test
Následující kód ukazuje příklad parametrizovaného testu. Testuje metodu sum() aritmetické třídy:
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
- 11. řádek kódu: Anotujte svou testovací třídu pomocí @runWith(Parameterized.class).
- 13. řádek kódu: Deklarování proměnné 'firstNumber' jako soukromé a typu jako int.
- 14. řádek kódu: Deklarování proměnné 'secondNumber' jako soukromé a typu jako int.
- 15. řádek kódu: Deklarování proměnné 'expectedResult' jako soukromé a typu int.
- 16. řádek kódu: Deklarování proměnné 'airthematic' jako soukromé a typu jako Airthematic.
@RunWith(název_třídy.třída): @RunWith anotace se používá k určení názvu třídy běžců. Pokud jako parametr nezadáme žádný typ, vybere si běhové prostředí BlockJunit4ClassRunner ve výchozím stavu.
Tato třída je zodpovědná za testy, které se mají spustit s novou testovací instancí. Je zodpovědný za vyvolání JUnit metody životního cyklu, jako je nastavení (přidružené zdroje) a odstranění (zdroje uvolnění).
Chcete-li parametrizovat, musíte anotovat pomocí @RunWith a předat požadovanou .class k testování
Krok 3) Vytvořte konstruktor, který ukládá testovací data. Ukládá 3 proměnné
Krok 4) Vytvořte statickou metodu, která generuje a vrací testovací data.
32,33. řádek kódu: Vytvoření dvourozměrného pole (poskytnutí vstupních parametrů pro sčítání). Pomocí metody asList převedeme data na typ List. Protože návratovým typem vstupu metody je kolekce.
30. řádek kódu: Použití @Parametry anotace k vytvoření sady vstupních dat pro spuštění našeho testu.
Statická metoda identifikovaná anotací @Parameters vrátí kolekci, kde každá položka v kolekci bude vstupními daty pro jednu iteraci testu.
Zvažte prvek
1,2,3 {}
Zde
první číslo = 1
secondNumber=2
očekávaný výsledek=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) Kompletní kód
Vysvětlení kódu:
- 25. řádek kódu: Pomocí anotace @Before k nastavení zdrojů (zde Airthematic.class). Anotace @Before se zde používá ke spuštění před každým testovacím případem. Obsahuje podmínku testu.
- 36. řádek kódu: Pomocí anotace @Test k vytvoření našeho testu.
- 39. řádek kódu: Vytváření tvrzení, abychom ověřili, 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:
- 8. řádek kódu: Deklarujeme hlavní metodu třídního testu, který poběží naše JUnit test.
- 9. řádek kódu: Při provádění testovacích případů pomocí JunitCore.runclasses bude jako parametr použit název testovací třídy (v našem příkladu používáme Airthematic.class).
- 11. řádek kódu: Zpracování výsledku pomocí smyčky for a tisk neúspěšného výsledku.
- 13. řádek kódu: Vytiskněte úspěšný výsledek.
Výstup:
Zde je výstup, který ukazuje úspěšný test bez stopy selhání, jak je uvedeno níže:
Podívejte se na výsledek na konzoli, která ukazuje sčítání dvou čísel: -
Shrnutí
Parametrizovaný test umožňuje vývojáři provádět stejný test znovu a znovu s použitím různých hodnot.
Důležité poznámky, které je třeba použít při parametrizaci
- @RunWith
- @Parametry