JUnit tvirtinimų klasėje yra statinių metodų rinkinys, leidžiantis atlikti vienetų testus. Teiginiai yra viena iš pagrindinių JUnit savybių. Šioje klasėje yra daugiau nei penkiasdešimt skirtingų metodų. Kai kurie tvirtinimų klasės testai bus nesėkmingi, jei sąlyga yra teisinga, o kiti nepavyks, jei sąlyga klaidinga.

Assertions klasėje taip pat yra daug perkrautų metodų. Kiekvienas tvirtinimo metodas turi bent du perkrautus metodus. Atraskite kai kuriuos populiaresnius Assertions klasės metodus ir sužinokite, kaip juos naudoti atliekant vienetų testus.

AssertEquals metodas

JUnit 5 assertEquals metodas turi daugiau nei dešimt variantų. Šis metodas yra vienas iš populiariausių Assertions klasės metodų. Viename assertEquals metodo variante yra numatoma reikšmė ir funkcija, kurią norite įvertinti (faktinė vertė). Antrasis pagrindinis variantas reikalauja papildomo trečiojo argumento. Tai klaidos pranešimas, kuris bus rodomas, jei JUnit vieneto testas nepavyksta.

Metodo assertEquals perkrovimas vyksta naudojant skirtingus duomenų tipus. Kai kurie assertEquals perkrovos metodai naudoja ketvirtąjį argumentą, vadinamą delta. Kitos versijos gedimų eilutę pakeičia funkcine Tiekėjo sąsaja a forma

instagram viewer
lambda išraiška.

AssertionsMethods Java klasė

paketą com.program;

viešasklasėTeiginiaiMetodai{
viešasstatinistarptkvadratas(tarpt skaičius){
grąžinti skaičius * skaičius;
}
}

Aukščiau pateikta AssertionsMethods Java klasė turi vieną metodą, vadinamą kvadratu. Kvadrato metodas paima sveikojo skaičiaus reikšmę ir grąžina jos kvadratą. Norėdami išbandyti kvadratinį metodą ir bet kurį būsimą metodą iš AssertionsMethods klasės, turėsite sukurti JUnit bandymo atvejį.

AssertionsMethodsTest JUnit bandymo atvejis

paketą com.program;

importuotistatinisorg.junitas.Tvirtina.assertEquals;
importuotistatinisorg.junitas.jupiteris.api.Tvirtinimai.*;

importuotiorg.junitas.jupiteris.api.Išbandyk;

klasėAssertionsMethodsTest{
@Test
tuštumatestSquare(){
AsertEquals(25, Tvirtinimo metodai.kvadratas(5));
assertEquals (36, AssertionMethods.square (6), "Jūsų kvadrato reikšmės nesutapo.");
assertEquals (49, AssertionMethods.square (7), () ->"Jūsų kvadrato reikšmės nesutapo.");
}
}

TestSquare() metodas naudoja tris assertEquals() variantus kvadrato() metodui išbandyti. Kiekvienas assertEquals() yra sėkmingas, nes visos laukiamos reikšmės atitinka faktines reikšmes, grąžintas kvadrato() metodu.

AssertNull metodas

JUnit Assertions klasė turi tiksliai tris assertNull metodus. Kiekvienas iš šių metodų naudoja vieną ar daugiau argumentų ir tvirtina, ar nurodytas objektas yra nulinis. Jei duotas objektas nėra nulinis, bandymas nepavyks.

@Test
viešastuštumatestStringValue(){
Styga stringValue = nulinis;
assertNull (stringValue);
assertNull (stringValue, "Jūsų eilutės reikšmė nėra nulinė");
assertNull (stringValue, () ->"Jūsų eilutės reikšmė nėra nulinė");
}

Pirmasis assertNull() metodas paima eilutės objektą ir patikrina, ar jis yra nulinis. Antrasis assertNull() metodas paima eilutės objektą ir eilutės pranešimą, kad būtų rodomas, jei bandymas nepavyksta. Trečiasis ir paskutinis assertNull() metodas paima objektą, kurį norite įvertinti, ir tiekėjo funkcinę sąsają.

Aukščiau pateiktu bandomuoju atveju Tiekėjo sąsaja veikia kaip lambda išraiškos priskyrimo tikslas. Jei bandymas nepavyksta, lambda išraiška generuoja klaidos pranešimą.

AssertTrue metodas

AssertTrue() metodas turi šešis variantus. Kiekvienas metodas patvirtina, ar tam tikra sąlyga yra teisinga. Jei sąlyga assertTrue() klaidinga, testas nepavyks.

@Test
tuštumatestEvenNumbers(){
tarpt skaičius1 = 10;
tarpt skaičius2 = 16;
tarpt skaičius3 = 26;
assertTrue (num1 < skaičius2);
assertTrue (num3 > skaičius2, "Jūsų sąlyga netiesa.");
assertTrue (num1 < skaičius3, () ->" Jūsų sąlyga netiesa.");
assertTrue(() -> skaičius1%2 == 0);
assertTrue(() -> skaičius2%2 == 0, "Jūsų vertė nėra lyginis skaičius.");
assertTrue(() -> skaičius3%2 == 0, () ->"Jūsų vertė nėra lyginis skaičius.");
}

TestEvenNumbers() metodas parodo, kaip naudoti visus šešis assertTrue() metodus. Visi aukščiau pateikti metodai yra teisingi, todėl šis įrenginio testas vykdomas be gedimų ar klaidų.

  • assertTrue (Bulio sąlyga): šis metodas naudoja Būlio sąlygą ir tvirtina, ar ji teisinga. Šio metodo pavyzdys aukščiau pateiktame kode patvirtina, kad pirmoji sveikojo skaičiaus reikšmė yra mažesnė už antrąją.
  • assertTrue (Bulio sąlyga, eilutės pranešimas): šis metodas išbando Būlio sąlygą, o jei ji klaidinga, rodoma eilutė.
  • assertTrue (Bulio sąlyga, tiekėjas messageSupplier): šis metodas naudoja Būlio ir Tiekėjo funkcinę sąsają kaip lambda išraišką. Pranešimo tiekėjas turi eilutę, kuri turi būti rodoma, jei Būlio sąlyga yra klaidinga.
  • assertTrue (BooleanSupplier booleanSupplier): šis metodas naudoja BooleanSupplier funkcinę sąsają lambda išraiškos forma, kuri įvertinama kaip teisinga arba klaidinga. Šio metodo pavyzdyje kode naudojama lambda išraiška. Jis tikrina likusią pirmojo sveikojo skaičiaus dalį, padalytą iš dviejų, kad nustatytų, ar ji yra lyginė, ar nelyginė.
  • assertTrue (BooleanSupplier booleanSupplier, String pranešimas): šis metodas naudoja BooleanSupplier funkcinę sąsają lambda išraiškos forma. Jei „BooleanSupier“ neteisinga, spausdinimui reikalingas eilutės pranešimas.
  • assertTrue (BooleanSupplier booleanSupplier, Tiekėjas messageSupplier): šis metodas reikalauja BooleanSupplier funkcinės sąsajos. Taip pat reikalinga tiekėjo funkcinė sąsaja, kuri yra lambda išraiška, kuri atspausdins eilutės reikšmę, jei bandymas nepavyks.

AssertFalse metodas

Metodas assertFalse() yra priešingas assertTrue() metodui. Šis metodas įvertina nurodytą sąlygą, kad pamatytų, ar ji klaidinga. Jei nurodyta sąlyga yra teisinga, assertFalse() testas nepavyks. Metodas assertFalse() taip pat turi šešis variantus, kurie priima tuos pačius argumentus kaip ir jų assertTrue() atitikmenys.

@Test
tuštumatestNotEvenNumbers(){
tarpt skaičius1 = 11;
tarpt skaičius2 = 17;
tarpt skaičius3 = 27;
assertFalse (num2 < skaičius1);
assertFalse (num2 > skaičius3, " Jūsų sąlyga nėra klaidinga.");
assertFalse (num3 < skaičius1, () ->" Jūsų sąlyga nėra klaidinga.");
assertFalse(() -> skaičius1%2 == 0);
assertFalse(() -> skaičius2%2 == 0, "Jūsų vertė yra lyginis skaičius.");
assertFalse(() -> skaičius3%2 == 0, () ->"Jūsų vertė yra lyginis skaičius.");
}

Visi šeši assertFalse() metodai, esantys testNotEvenNumbers() metodu, yra klaidingi, o tai reiškia, kad assertFalse() testai yra sėkmingi.

Vienetų testavimo pranašumai

Vienetų testavimas yra neatsiejama programinės įrangos kūrimo proceso dalis. Dideli programinės įrangos projektai žlunga dėl įvairių priežasčių – nuo ​​juos dirbančių komandų iki kūrimo metodų.

Vieneto testavimo tikslas yra pašalinti programinės įrangos gedimus, suteikiant ankstyvą klaidų aptikimą. Tam reikia, kad komandos parengtų aiškias specifikacijas, pagerintų programinės įrangos dizainą per klaidų dokumentus ir palaikytų programinės įrangos priežiūrą.

Vienetų testavimas nėra vienintelis programinės įrangos testavimo metodas, kurį turėtumėte naudoti savo kūrimo cikle, tai tiesiog labai gera vieta pradėti.