Při vývoji softwaru je testování jednotek proces, který izoluje a testuje vyhrazené části aplikace. Jednotky jsou formálním termínem pro tyto vyhrazené sekce. Ve vaší aplikaci Java je jednotka metodou.
Pro vývojáře Java je k dispozici mnoho rámců pro testování jednotek. Mezi nejlepší frameworky patří JUnit 5.
Proč je testování jednotek důležité?
Pokud jste někdy psali ladicí příkazy pro tisk a kontrolu hodnoty proměnné, gratulujeme; vytvořili jste test jednotky. Tato část kódu byla nezbytná, protože jste nedostávali požadovaný výstup.
Ale co když jste dostávali požadovaný výstup a kód stále někde obsahoval chybu? Můžete nasadit aplikaci a tato chyba by mohla později vést k narušení zabezpečení. U aplikací, které ukládají data uživatelů, jsou v sázce vysoké, když dojde k narušení bezpečnosti.
Testování jednotek se zaměřuje na každou sekci vaší aplikace – ať už aktuálně způsobuje chybu, nebo ne. Proto testování jednotek hraje významnou roli dobré softwarové zabezpečení.
Co je JUnit 5?
JUnit 5 je více než jen další rámec pro testování jednotek. Má několik dílčích projektů, jmenovitě JUnit Platform, JUnit Jupiter a JUnit Vintage. Každá z těchto tří komponent má jedinečné moduly, které spolupracují na zlepšení testování pro programátory Java.
Platforma JUnit 5 je dostupná v nejnovějších verzích špičkových vývojových platforem Java Integrated (IDE). Java IDE, která podporují JUnit 5, jsou:
- IntelliJ IDEA
- Zatmění
- NetBeans
- Kód Visual Studio
Vytváření testů jednotek pomocí JUnit 5
Tento ukázkový program používá JUnit 5 k vytvoření několika jednotkových testů v jednoduché aplikaci kalkulačky.
Třída kalkulačky
balík aplikace;
veřejnosttřídaKalkulačka{
veřejnoststatickýintpřidat(int číslo1, int číslo2){
vrátit se číslo 1 + číslo 2;
}veřejnoststatickýintodčítat(int číslo1, int číslo2){
vrátit se číslo1 - číslo2;
}veřejnoststatickýintnásobit(int číslo1, int číslo2){
vrátit se číslo1 * číslo2;
}
veřejnoststatickýintrozdělit(int číslo1, int číslo2){
vrátit se číslo1 / číslo2;
}
}
The třída Java výše provádí čtyři statické operace: sčítání, odčítání, násobení a dělení. Každá metoda přebírá dva celočíselné argumenty a vrací jednu celočíselnou hodnotu.
Testovací třída JUnit 5
balík test;
importstatický org.junit. Tvrdit.*;
import aplikace. Kalkulačka;
importorg.junit.Test;veřejnosttřídaTest kalkulačky{
@Test
veřejnostprázdnotatestAdd(){
tvrdit Rovná se(7, Kalkulačka.přidat(3, 4));
}@Test
veřejnostprázdnotatestOdečíst(){
tvrdit Rovná se(6, Kalkulačka.odčítat(9, 3));
}@Test
veřejnostprázdnotatestMultiply(){
tvrdit Rovná se(10, Kalkulačka.násobit(5, 2));
}
@Test
veřejnostprázdnotatestDivide(){
tvrdit Rovná se(2, Kalkulačka.rozdělit(4, 2));
}
}
Test kalkulačky zavádí dva důležité pojmy: @Test anotace a claimEquals() metoda. Anotace @Test označuje, že metoda přímo pod ní je testovací metodou. Ve výše uvedené testovací třídě jsou čtyři testovací metody, jedna pro každou z operací kalkulačky.
Všechny testovací metody používají metodu sustainEquals(). Tato metoda vyžaduje dva povinné argumenty a volitelný třetí argument. První argument uvedený výše uvedené metodě claimEquals() je očekávaný výsledek a druhý argument je metoda (nebo jednotka), kterou chcete posoudit.
Třída CalculatorTest nemá hlavní metodu, ale anotace JUnit @Test činí každou z testovacích metod spustitelnou. Spuštění třídy CalculatorTest v Eclipse vytvoří následující rozhraní:
Jak vidíte, každý test je úspěšný. Existují čtyři testy a všechny proběhly bez chyb nebo selhání.
Testování učebních jednotek může rozšířit vaše kariérní příležitosti
Pro vývojáře je znalost testování softwaru výhodnou dovedností. Určitě to zlepší váš pracovní postup a doufejme, že usnadní používání vašeho kódu pro ostatní. Existuje však odvětví vývoje softwaru, které se zaměřuje výhradně na testování. Tito inženýři jsou známí jako testeři softwaru.