Pri razvoju programske opreme je testiranje enot proces, ki izolira in testira namenske dele aplikacije. Enote so uradni izraz za te namenske razdelke. V vaši aplikaciji Java je enota metoda.

Razvijalcem Java je na voljo veliko ogrodij za testiranje enot. Med najboljšimi okviri je JUnit 5.

Zakaj je testiranje enot pomembno?

Če ste že kdaj napisali stavke za odpravljanje napak za tiskanje in preverjanje vrednosti spremenljivke, čestitamo; ustvarili ste test enote. Ta odsek kode, ki ga je treba vrniti, je bil potreben, ker niste prejeli želenega rezultata.

Kaj pa, če ste prejemali želeni rezultat in koda še vedno nekje vsebuje napako? Morda boste uvedli aplikacijo in ta hrošč lahko pozneje povzroči kršitev varnosti. Za aplikacije, ki shranjujejo podatke uporabnikov, so vložki visoki, ko pride do kršitve varnosti.

Testiranje enote cilja na vsak del vaše aplikacije – ne glede na to, ali trenutno povzroča napako ali ne. Zato ima testiranje enot pomembno vlogo pri dobra varnost programske opreme.

Kaj je JUnit 5?

JUnit 5 je več kot le še en okvir za testiranje enot. Ima več podprojektov, in sicer platformo JUnit, JUnit Jupiter in JUnit Vintage. Vsaka od teh treh komponent ima edinstvene module, ki skupaj izboljšajo testiranje za programerje Java.

Platforma JUnit 5 je na voljo v najnovejših različicah vrhunskih integriranih razvojnih platform Java (IDE). Java IDE, ki podpirajo JUnit 5, so:

  • IntelliJ IDEJA
  • Mrk
  • NetBeans
  • Koda Visual Studio

Ustvarjanje testov enot z JUnit 5

Ta vzorčni program uporablja JUnit 5 za ustvarjanje več testov enote v aplikaciji preprostega kalkulatorja.

Razred kalkulator

paket aplikacija;

javnostirazredKalkulator{
javnostistatičnaintdodati(int num1, int num2){
vrnitev num1 + num2;
}

javnostistatičnaintodšteti(int num1, int num2){
vrnitev num1 - num2;
}

javnostistatičnaintpomnožiti(int num1, int num2){
vrnitev num1 * num2;
}

javnostistatičnaintrazdeliti(int num1, int num2){
vrnitev num1 / num2;
}
}

The Java razred zgoraj izvaja štiri statične operacije: seštevanje, odštevanje, množenje in deljenje. Vsaka metoda sprejme dva celoštevilska argumenta in vrne eno samo celoštevilsko vrednost.

Testni razred JUnit 5

paket test;

uvozstatična org.junit. Trdi.*;
uvoz aplikacija Kalkulator;
uvozorg.junit.Test;

javnostirazredCalculatorTest{
@Test
javnostiprazninatestAdd(){
assertEquals(7, Kalkulator.dodaj(3, 4));
}

@Test
javnostiprazninatestSubtract(){
assertEquals(6, Kalkulator.odšteti(9, 3));
}

@Test
javnostiprazninatestMultiply(){
assertEquals(10, Kalkulator.množiti(5, 2));
}

@Test
javnostiprazninatestDivide(){
assertEquals(2, Kalkulator.deliti(4, 2));
}
}

CalculatorTest uvaja dva pomembna koncepta: @Test opombo in assertEquals() metoda. Opomba @Test označuje, da je metoda neposredno pod njo preskusna metoda. V zgornjem preskusnem razredu so štiri preskusne metode, ena za vsako operacijo kalkulatorja.

Vse testne metode uporabljajo metodo assertEquals(). Ta metoda sprejme dva obvezna argumenta in izbirni tretji argument. Prvi argument, podan zgornji metodi assertEquals(), je pričakovani rezultat, drugi argument pa je metoda (ali enota), ki jo želite oceniti.

Razred CalculatorTest nima glavne metode, toda opombe JUnit @Test naredijo vsako testno metodo izvršljivo. Izvajanje razreda CalculatorTest v eclipse ustvari naslednji vmesnik:

Kot lahko vidite, je vsak test uspešen. Obstajajo štirje testi in vsi so potekali brez napak ali napak.

Testiranje učnih enot lahko razširi vaše karierne priložnosti

Kot razvijalec je znanje, kako testirati programsko opremo, koristna veščina. To bo zagotovo izboljšalo vaš potek dela in, upajmo, olajšalo uporabo vaše kode za druge. Vendar pa obstaja veja razvoja programske opreme, ki se osredotoča izključno na testiranje. Ti inženirji so znani kot preizkuševalci programske opreme.