JUnit Assertions Class sisältää kokoelman staattisia menetelmiä, joiden avulla voit suorittaa yksikkötestejä. Väitteet ovat yksi JUnitin ydinominaisuuksista. Tällä luokalla on yli viisikymmentä erilaista menetelmää. Jotkut Assertions-luokan testit epäonnistuvat, jos ehto on tosi, kun taas toiset epäonnistuvat, jos ehto on epätosi.

Assertions-luokassa on myös monia ylikuormitettuja menetelmiä. Jokaisessa väitemenetelmässä on vähintään kaksi ylikuormitettua menetelmää. Tutustu joihinkin suosituimpiin Assertions-luokan menetelmiin ja opi käyttämään niitä yksikkötestien suorittamiseen.

AssertEquals-menetelmä

JUnit 5 assertEquals -menetelmässä on yli kymmenen muunnelmaa. Tämä menetelmä on yksi suosituimmista Assertions-luokan menetelmistä. Yksi assertEquals-menetelmän muunnelma ottaa odotetun arvon ja funktion, jonka haluat arvioida (todellinen arvo). Toinen tärkeä variantti vaatii kolmannen lisäargumentin. Tämä on virheilmoitus, joka tulee näkyviin, jos JUnit-yksikkötesti epäonnistuu.

AssertEquals-menetelmän ylikuormitus tapahtuu eri tietotyypeillä. Jotkut assertEquals-ylikuormitusmenetelmät ottavat neljännen argumentin nimeltä delta. Muut versiot korvaavat vikamerkkijonon Toimittajan toiminnallisella käyttöliittymällä muodossa a

instagram viewer
lambda ilmaisu.

AssertionsMethods Java-luokka

paketti com.program;

julkinenluokkaaAssertionsMethods{
julkinenstaattinenintneliö-(int numero){
palata num * num;
}
}

Yllä olevassa AssertionsMethods Java-luokassa on yksi neliö-niminen menetelmä. Neliömenetelmä ottaa kokonaisluvun arvon ja palauttaa neliönsä. Jotta voit testata neliömenetelmää ja kaikkia tulevia AssertionsMethods-luokan metodia, sinun on luotava JUnit-testitapaus.

AssertionsMethodsTest JUnit -testitapaus

paketti com.program;

tuontistaattinenorg.junit.Väitä.asserEquals;
tuontistaattinenorg.junit.Jupiter.api.Väitteet.*;

tuontiorg.junit.Jupiter.api.Testata;

luokkaaAssertionsMethodsTest{
@Testata
mitätöntestineliö(){
väittääEquals(25, Assertion Methods.neliö(5));
assertEquals (36, AssertionMethods.square (6), "Neliön arvosi eivät täsmää.");
assertEquals (49, AssertionMethods.square (7), () ->"Neliön arvosi eivät täsmää.");
}
}

TestSquare()-menetelmä käyttää kolmea assertEquals()-muunnelmaa square()-menetelmän testaamiseen. Jokainen assertEquals() on menestys, koska kaikki odotetut arvot vastaavat square()-metodin palauttamia todellisia arvoja.

assertNull-menetelmä

JUnit Assertions -luokassa on täsmälleen kolme assertNull-menetelmää. Jokainen näistä menetelmistä ottaa yhden tai useamman argumentin ja väittää, jos annettu objekti on tyhjä. Jos tietty objekti ei ole tyhjä, testi epäonnistuu.

@Testata
julkinenmitätöntestStringValue(){
merkkijono stringValue = tyhjä;
assertNull (merkkijonoarvo);
assertNull (merkkijonoarvo, "Merkkijonosi arvo ei ole nolla");
assertNull (merkkijonoarvo, () ->"Merkkijonosi arvo ei ole nolla");
}

Ensimmäinen assertNull()-metodi ottaa merkkijonoobjektin ja tarkistaa, onko se tyhjä. Toinen assertNull()-metodi ottaa merkkijonoobjektin ja merkkijonoviestin näkyviin, jos testi epäonnistuu. Kolmas ja viimeinen assertNull() -menetelmä ottaa arvioitavan objektin ja toimittajan toiminnallisen käyttöliittymän.

Yllä olevassa testitapauksessa Toimittajarajapinta toimii lambda-lausekkeen osoituskohteena. Lambda-lauseke luo virheilmoituksen, jos testi epäonnistuu.

AssertTrue Method

AssertTrue()-menetelmällä on kuusi muunnelmaa. Jokainen menetelmä vahvistaa, onko tietty ehto tosi. Jos assertTrue()-ehto on epätosi, testi epäonnistuu.

@Testata
mitätöntestEvenNumbers(){
int numero1 = 10;
int numero2 = 16;
int numero3 = 26;
assertTrue (num1 < numero2);
assertTrue (num3 > numero2, "Sinun ehtosi ei ole totta.");
assertTrue (num1 < numero3, () ->" Sinun ehtosi ei ole totta.");
assertTrue(() -> num1%2 == 0);
assertTrue(() -> numero2%2 == 0, "Arvosi ei ole parillinen luku.");
assertTrue(() -> num3%2 == 0, () ->"Arvosi ei ole parillinen luku.");
}

TestEvenNumbers()-menetelmä osoittaa, kuinka kaikkia kuutta assertTrue()-menetelmää käytetään. Kaikki yllä olevat menetelmät pitävät paikkansa, joten tämä yksikkötesti suoritetaan ilman vikoja tai virheitä.

  • assertTrue (Boolen ehto): tämä menetelmä ottaa Boolen ehdon ja väittää, onko se tosi. Tämän menetelmän esimerkki yllä olevassa koodissa vahvistaa, jos ensimmäinen kokonaislukuarvo on pienempi kuin toinen.
  • assertTrue (boolen ehto, merkkijonoviesti): tämä menetelmä testaa loogisen ehdon ja näyttää merkkijonon, jos se on epätosi.
  • assertTrue (Totuusarvo, Toimittaja messageSupplier): tämä menetelmä ottaa Boolen ja Toimittajan toiminnallisen käyttöliittymän lambda-lausekkeena. Viestin toimittaja sisältää merkkijonon, joka näytetään, jos Boolen ehto on epätosi.
  • assertTrue (BooleanSupplier booleanSupplier): tämä menetelmä ottaa BooleanSupplier-toiminnallisen rajapinnan lambda-lausekkeen muodossa, joka arvioi arvoksi tosi tai epätosi. Tämän menetelmän esimerkki koodissa käyttää lambda-lauseketta. Se testaa ensimmäisen kokonaisluvun loppuosan jaettuna kahdella määrittääkseen, onko se parillinen vai pariton.
  • assertTrue (BooleanSupplier booleanSupplier, String-sanoma): tämä menetelmä ottaa BooleanSupplier-toiminnallisen rajapinnan lambda-lausekkeen muodossa. Jos BooleanSupier ei ole tosi, tulostaminen vaatii myös merkkijonoviestin.
  • assertTrue (BooleanSupplier booleanSupplier, Toimittaja messageSupplier): tämä menetelmä vaatii toiminnallisen BooleanSupplier-liittymän. Se vaatii myös Toimittajan toiminnallisen käyttöliittymän, joka on lambda-lauseke, joka tulostaa merkkijonoarvon, jos testi epäonnistuu.

AssertFalse -menetelmä

AssertFalse()-menetelmä on assertTrue()-menetelmän vastakohta. Tämä menetelmä arvioi tietyn ehdon nähdäkseen, onko se epätosi. Jos annettu ehto on tosi, assertFalse() -testi epäonnistuu. AssertFalse()-menetelmässä on myös kuusi muunnelmaa, jotka hyväksyvät samat argumentit kuin assertTrue()-vastineet.

@Testata
mitätöntestNotEvenNumbers(){
int numero1 = 11;
int numero2 = 17;
int numero3 = 27;
assertFalse (num2 < numero1);
assertFalse (num2 > numero3, " Tilanteesi ei ole väärä.");
assertFalse (num3 < numero1, () ->" Tilanteesi ei ole väärä.");
assertFalse(() -> num1%2 == 0);
assertFalse(() -> numero2%2 == 0, "Arvosi on parillinen luku.");
assertFalse(() -> num3%2 == 0, () ->"Arvosi on parillinen luku.");
}

TestNotEvenNumbers()-menetelmän kuusi assertFalse()-menetelmää johtavat kaikkiin arvoon false, mikä tarkoittaa, että assertFalse()-testit onnistuvat.

Yksikkötestauksen edut

Yksikkötestaus on olennainen osa ohjelmistokehitysprosessia. Suuret ohjelmistoprojektit epäonnistuvat useista syistä, jotka vaihtelevat niitä käsittelevistä tiimeistä kehitysmenetelmiin.

Yksikkötestauksen tarkoituksena on eliminoida ohjelmistovikoja tarjoamalla varhainen virheiden havaitseminen. Tämä edellyttää, että tiimit laativat selkeät määritykset, parantavat ohjelmistosuunnittelua virhedokumentaation avulla ja tarjoavat tukea ohjelmistojen ylläpitoon.

Yksikkötestaus ei ole ainoa ohjelmistotestaustaso, jota sinun tulisi käyttää kehitysvaiheessasi, vaan se on vain hyvä paikka aloittaa.