Junit Assert & „AssertEquals“ su pavyzdžiu

Turinys:

Anonim

Kas yra „Junit Assert“?

„Assert“ yra metodas, naudingas nustatant bandymo atvejo „Pass“ arba „Fail“ būseną. „Assert“ metodus pateikia klasė org.junit.Assert, kuri pratęsia java.lang.Object klasę.

Yra įvairių tipų teiginių, tokių kaip Boolean, Null, Identical ir kt.

„Junit“ pateikia klasę pavadinimu „Assert“, kurioje pateikiama daugybė tvirtinimo metodų, naudingų rašant bandymo atvejus ir nustatant bandymo nesėkmę.

Teigimo metodus pateikia klasė org.junit.Assert , pratęsianti java.lang.Object klasę.

Šioje pamokoje sužinosite

  • JUnit Tvirtinimo metodai
  • Būlio
  • Nulis objektas
  • Identiški
  • Teigti lygūs
  • Teigti, kad masyvas lygus
  • Nepavykęs pranešimas
  • „JUnit assertEquals“
  • Plūduriuojančių taškų teiginiai
  • „JUnit“ tvirtinimo pavyzdys

JUnit Tvirtinimo metodai

Būlio

Jei norite patikrinti logines sąlygas (teisingas ar klaidingas), galite naudoti šiuos tvirtinimo metodus

  1. assertTrue (sąlyga)
  2. assertFalse (sąlyga)

Čia sąlyga yra loginė reikšmė.

Nulis objektas

Jei norite patikrinti pradinę objekto / kintamojo vertę, turite šiuos metodus:

  1. assertNull (objektas)
  2. assertNotNull (objektas)

Čia objektas yra „Java“ objektas, pvz., „ AssertNull“ (tikrasis);

Identiški

Jei norite patikrinti, ar objektai yra identiški (ty palyginti dvi nuorodas į tą patį „Java“ objektą), ar skiriasi.

  1. assertSame (tikėtinas, tikrasis), jis bus teisingas, jei tikimasi == faktinis
  2. assertNotSame (laukiama, faktinė)

Teigti lygūs

Jei norite patikrinti dviejų objektų lygybę, turite šiuos metodus

  • assertEquals (laukiama, faktinė)

Ji grįš teisinga, jei: tikėtasi. Lygi (faktinė) grįš tiesą.

Teigti, kad masyvas lygus

Jei norite išbandyti masyvų lygybę, turite šiuos metodus, kaip nurodyta toliau:

  • assertArrayEquals (laukiama, faktinė)

Jei masyvai yra vienodo ilgio, turi būti naudojamas aukščiau pateiktas metodas. Kiekvieną galiojančią i reikšmę galite patikrinti, kaip nurodyta toliau:

  • „assertEquals“ (laukiama [i], faktinė [i])
  • assertArrayEquals (tikėtinas [i], tikrasis [i])

Nepavykęs pranešimas

Jei norite mesti bet kokią teiginio klaidą, turite failą „Fail“ (), dėl kurio visada priimamas sprendimas dėl nesėkmės.

  • Nepavyko (pranešimas);

Pirmąjį parametrą galite turėti teiginio metodą su papildomu eilutės parametru. Ši eilutė bus pridėta prie gedimo pranešimo, jei teiginys nepavyks. Pvz., Fail (failas) gali būti parašytas taip

  • assertEquals (pranešimas, laukiama, faktinė)

„JUnit assertEquals“

Turite „ assertEquals“ (a, b), kuris remiasi „Object“ klasės metodu „ equals ()“ .

  • Čia jis bus vertinamas kaip a. Lygus (b).
  • Čia bandoma klasė naudojama nustatyti tinkamą lygybės santykį.
  • Jei klasė nepaiso objekto klasės metodo equals () , ji gaus numatytąjį metodą equals () , ty objekto tapatumą.

Jei a ir b yra primityvūs, pvz., Baitas , int , loginė reikšmė ir kt., „AssertEquals“ (a, b) bus daroma taip:

a ir b bus konvertuoti į jų lygiavertį įvyniojimo objekto tipą ( baitas, sveikasis skaičius , loginė reikšmė ir kt.), tada bus įvertinti a. lygybės (b) .

Pvz.: Apsvarstykite toliau paminėtas eilutes, turinčias tas pačias reikšmes, išbandykime ją naudodami „assertTrue“

Eilutė obj1 = "Junit";Eilutė obj2 = "Junit";assertEquals (obj1, obj2);

Virš teiginio teiginio bus teisinga, nes obj1.equals (obj2) grąžins tiesą.

Plūduriuojančių taškų teiginiai

Jei norite palyginti slankiojo kablelio tipus (pvz., Dvigubus arba plūduriuojančius ), jums reikia papildomo reikalaujamo parametro delta, kad būtų išvengta problemų su apvalinimo taškų klaidomis atliekant slankiųjų kablelių palyginimus.

Teiginys vertinamas taip, kaip nurodyta toliau:

  • Math.abs (laukiama - faktinė) <= delta

Pavyzdžiui:

assertEquals (aDoubleValue, anotherDoubleValue, 0,001)

„JUnit“ tvirtinimo pavyzdys

Žemiau pateiktame pavyzdyje parodyta, kaip teigti sąlygą naudojant „JUnit“ tvirtinimo metodus.

Sukurkime paprastą testų klasę pavadinimu Junit4AssertionTest.java ir bandomųjų bėgikų klasę TestRunner.java .

„JUnit“ sukursite keletą kintamųjų ir svarbių teiginių.

Šiame pavyzdyje atliksite mūsų testų klasę naudodami TestRunner.java

1 žingsnis. Leiskite sukurti klasę, apimančią visus svarbiausius teiginio pareiškimo metodus.

Junit4AssertionTest.java

paketas guru99.junit;importuoti statinį org.junit.Assert. *;importuoti org.junit.Test;public class Junit4AssertionTest {@Testpublic void testAssert () {// Kintama deklaracijaStyginių eilutė1 = "Junit";Styginių eilutė2 = "Junit";Styginių eilutė3 = "testas";Styginių eilutė4 = "testas";Eilučių eilutė5 = null;int kintamasis 1 = 1;int kintamasis 2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Teigti teiginiusassertEquals (eilutė1, eilutė2);assertSame (eilutė3, eilutė4);assertNotSame (eilutė1, eilutė3);assertNotNull (eilutė1);assertNull (eilutė5);assertTrue (kintamasis1 

2 veiksmas) Norėdami sukurti aukščiau esančią klasę, turite sukurti bandomąją bėgikų klasę:

TestRunner.java

paketas guru99.junit;importuoti org.junit.runner.JUnitCore;importuoti org.junit.runner.Result;importuoti org.junit.runner.notification.Failure;viešoji klasė „TestRunner“public static void main (String [] argumentuoja) {Rezultato rezultatas = JUnitCore.runClasses (Junit4AssertionTest.class);už (Nesėkmės gedimas: rezultatas.getFailures ()) {System.out.println (Gedimas.String ());}System.out.println ("Rezultatas ==" + rezultatas.veiksmingai ());}}

3 žingsnis. Leiskite žingsnis po žingsnio analizuoti laukiamą rezultatą:

Apsvarstykite visus teigiamus teiginius po vieną:

  1. assertEquals (eilutė1, eilutė2);

Dabar palyginkite string1 = "Junit" su string2 = "Junit" su "equals" objekto klasės metodu. Metodo assertEquals pakeitimas iš metodo java.lang.Object.equals ():

string1.equals (string2) => grąžina true

Taigi „assertEquals“ (eilutė1, eilutė2) grįš į tiesą .

  1. assertSame (eilutė3, eilutė4);

Funkcija „assertSame ()“ yra patikrinti, ar du objektai nurodo tą patį objektą.

Kadangi string3 = "test" ir string4 = "test" reiškia, kad tiek string3, tiek string4 yra to paties tipo, todėl „assertSame“ (string3, string4) grįš į true .

  1. assertNotSame (eilutė1, eilutė3);

Funkcija „assertNotSame ()“ yra patikrinti, ar abu objektai nėra susiję su tuo pačiu objektu.

Kadangi string1 = "Junit" ir string3 = "test" reiškia, kad tiek string1, tiek string3 yra skirtingų tipų, todėl „assertNotSame“ (string1, string3) grįš į true .

  1. assertNotNull (eilutė1);

Funkcija "assertNotNull ()" yra patikrinti, ar objektas nėra nulinis.

Kadangi string1 = "Junit", kuri nėra nulinė reikšmė, todėl assertNotNull (string1) grįš į true .

  1. assertNull (eilutė5);

Funkcija "assertNull ()" yra patikrinti, ar objektas yra nulinis.

Kadangi string5 = null, kuri yra nulinė reikšmė, „assertNull“ (string5) grįš į true .

  1. assertTrue (kintamasis1

„AssertTrue ()“ funkcija yra patikrinti, ar sąlyga teisinga.

Kadangi kintamasis1 = 1 ir kintamasis2 = 2, tai rodo, kad kintamasis1 teisinga .

  1. assertArrayEquals (airethematicArrary1, airethematicArrary2);

Funkcija "assertArrayEquals ()" yra patikrinti, ar laukiamas masyvas ir gautas masyvas yra lygūs. Masyvo tipas gali būti int, ilgas, trumpas, char, baitas arba java.lang.Object.

Kadangi airethematicArrary1 = {1, 2, 3} ir airethematicArrary2 = {1, 2, 3}, kurie parodo, kad abi masyvai yra lygūs, todėl „assertArrayEquals“ („airethematicArrary1“, „airethematicArrary2“) grįš teisinga

Kadangi visi septyni „ Junit4AssertionTest.java“ klasės teiginiai yra teisingi, tada, kai vykdysite bandymo tvirtinimo klasę, jis grąžins sėkmingą testą. (žr. išvestį žemiau)

4 žingsnis) Dešiniuoju pelės mygtuku spustelėkite Junit4AssertionTest.java ir spustelėkite runAs-> JUnit. Pamatysite išvestį, kaip nurodyta toliau:

Virš išvesties rodomas sėkmingas bandymo rezultatas, kaip tikėtasi.

Santrauka:

Šioje pamokoje sužinojote visus svarbius tvirtinimo metodų tipus, kuriuos pateikė „JUnit“. Be to, jūs matėte teiginių teiginius. Tai rodo, kad jei visi teiginiai teiginiai grįš teisingais, tada bandomoji GUI pateiks tikrąjį rezultatą, o jei nepavyks vieno bandymo, bus grąžintas nepavykęs rezultatas.