Junit Assert & AssertEquals esimerkin kanssa
Mikä on Junit Assert?
Assert on menetelmä, joka on hyödyllinen testitapauksen hyväksytyn tai epäonnistuneen tilan määrittämisessä. Assert-menetelmät tarjoaa luokka org.junit.Assert, joka laajentaa java.lang.Object-luokkaa.
On olemassa erilaisia väitteitä, kuten Boolean, Null, Identical jne.
Junit tarjoaa luokan nimeltä Assert, joka tarjoaa joukon vahvistusmenetelmiä, jotka ovat hyödyllisiä testitapausten kirjoittamisessa ja testin epäonnistumisen havaitsemisessa
Väitemenetelmät tarjoaa luokka org.junit.Assert joka ulottuu java.lang.Object luokka.
JUnit Toteutusmenetelmät
boolean
Jos haluat testata boolen ehtoja (tosi tai epätosi), voit käyttää seuraavia vahvistusmenetelmiä
- väittää totta(ehto)
- väittää False (ehto)
Tässä ehto on boolen arvo.
Nollaobjekti
Jos haluat tarkistaa objektin/muuttujan alkuarvon, sinulla on seuraavat menetelmät:
- assertNull(objekti)
- assertNotNull(objekti)
Tässä kohde on Java objekti esim assertNull(todellinen);
identtinen
Jos haluat tarkistaa, ovatko objektit identtisiä (eli vertaamalla kahta viittausta samaan Java-objektiin) vai erilaisia.
- assertSame(odotettu, todellinen), Se tulee takaisin todeksi, jos odotettu == todellinen
- assertNotSame (odotettu, todellinen)
Väitä yhtä kuin
Jos haluat testata kahden objektin yhtäläisyyttä, sinulla on seuraavat menetelmät
- assertEquals (odotettu, todellinen)
Se on totta, jos: odotettu.yhtä( todellinen ) palaa todeksi.
Assert Array Equals
Jos haluat testata taulukoiden tasa-arvoa, sinulla on seuraavat alla olevat menetelmät:
- assertArrayEquals(odotettu, todellinen)
Yllä olevaa menetelmää on käytettävä, jos taulukoilla on sama pituus jokaiselle kelvolliselle arvolle i, voit tarkistaa sen alla kuvatulla tavalla:
- assertEquals(odotettu[i],todellinen[i])
- assertArrayEquals(odotettu[i],todellinen[i])
Epäonnistunut viesti
Jos haluat heittää väitevirheen, niin olet tehnyt epäonnistua () joka johtaa aina epäonnistuneeseen tuomioon.
- Epäonnistui(viesti);
Sinulla voi olla väitemenetelmä ylimääräisellä jono parametri ensimmäisenä parametrina. Tämä merkkijono liitetään virheviestiin, jos väite epäonnistuu. Esim epäonnistuu (viesti) voidaan kirjoittaa nimellä
- assertEquals( viesti, odotettu, todellinen)
JUnit väittääEquals
Sinulla on assertEquals(a,b) joka perustuu on yhtä suuri () Object-luokan menetelmä.
- Tässä sitä arvostellaan a.on yhtä kuin( b ).
- Tässä testattavaa luokkaa käytetään sopivan tasa-arvon määrittämiseen.
- Jos luokka ei ohita on yhtä suuri () menetelmä objekti luokassa, se saa oletuskäyttäytymisen on yhtä suuri () menetelmällä eli objektin identiteetillä.
If a ja b ovat primitiivisiä, kuten tavu, int, booleanjne., niin assertEquals(a,b):lle tehdään seuraava:
a ja b muunnetaan vastaavaan kääreobjektityyppiin (tavu, kokonaisluku, booleanjne.) ja sitten a. on yhtä kuin( b ) tullaan arvioimaan.
Esimerkki: Harkitse alla mainittuja merkkijonoja, joilla on samat arvot, testataan se käyttämällä assertTrue
String obj1="Junit"; String obj2="Junit"; assertEquals(obj1,obj2);
Yllä oleva väitelause palauttaa tosi, kun obj1.equals(obj2) palauttaa tosi.
Liukuluku väitteet
Kun haluat vertailla liukulukutyyppejä (esim kaksinkertainen or kellua), tarvitset lisäparametrin delta välttääksesi pyöristysvirheisiin liittyvät ongelmat liukulukuvertailujen aikana.
Väite arvioi seuraavasti:
- Math.abs( odotettu – todellinen ) <= delta
Esimerkiksi:
assertEquals(aDoubleArvo, toinenDoubleArvo, 0.001)
JUnit Vahvista esimerkki
Alla oleva esimerkki osoittaa, kuinka ehto vahvistetaan käyttämällä JUnit väittää menetelmiä.
Luodaan yksinkertainen testiluokka nimeltä Junit4AssertionTest.java ja koejuoksijoiden luokka TestRunner.java.
Luot sisään muutamia muuttujia ja tärkeitä väitteitä JUnit.
Tässä esimerkissä suoritat testiluokkamme käyttämällä TestRunner.javaa
Vaihe 1) Luodaan luokka, joka kattaa kaikki tärkeät junitin väitteet:
Junit4AssertionTest.java
package guru99.junit;
import static org.junit.Assert.*;
import org.junit.Test;
public class Junit4AssertionTest {
@Test
public void testAssert(){
//Variable declaration
String string1="Junit";
String string2="Junit";
String string3="test";
String string4="test";
String string5=null;
int variable1=1;
int variable2=2;
int[] airethematicArrary1 = { 1, 2, 3 };
int[] airethematicArrary2 = { 1, 2, 3 };
//Assert statements
assertEquals(string1,string2);
assertSame(string3, string4);
assertNotSame(string1, string3);
assertNotNull(string1);
assertNull(string5);
assertTrue(variable1<variable2);
assertArrayEquals(airethematicArrary1, airethematicArrary2);
}
}
Vaihe 2) Sinun on luotava testirunner-luokka suorittaaksesi yllä olevan luokan:
TestRunner.java
package guru99.junit;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(Junit4AssertionTest.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println("Result=="+result.wasSuccessful());
}
}
Vaihe 3) Analysoidaan odotettu tulos askel askeleelta:
Harkitse kaikkia väitelauseita yksitellen:
- asserEquals(merkkijono1,merkkijono2);
Vertaa nyt string1=” Junit” merkkijonoon 2=” Junit” yhtä kuin objektiluokan menetelmällä. AssertEquals-menetelmän korvaaminen java.lang.Object.equals()-metodista:
string1.equals(merkkijono2)=> palauttaa tosi
Joten asserEquals(merkkijono1,merkkijono2) palauttaa totta.
- assertSame(merkkijono3, merkkijono4);
"assertSame()" -toiminto on tarkistaa, että nämä kaksi objektia viittaavat samaan objektiin.
Koska string3=”test” ja string4=”test” tarkoittavat, että sekä merkkijono3 että merkkijono4 ovat samaa tyyppiä, joten assertSame(merkkijono3, merkkijono4) palauttaa totta.
- assertNotSame(merkkijono1, merkkijono3);
"assertNotSame()" -toiminto on varmistaa, että nämä kaksi objektia eivät viittaa samaan objektiin.
Koska string1=”Junit” ja string3=”test” tarkoittavat, että sekä merkkijono1 että merkkijono3 ovat eri tyyppejä, joten assertNotSame(merkkijono1, merkkijono3) palauttaa totta.
- assertNotNull(merkkijono1);
"assertNotNull()" -toiminto on tarkistaa, että objekti ei ole tyhjä.
Koska merkkijono1 = "Junit", joka on ei-nolla-arvo, joten assertNotNull(merkkijono1) palauttaa totta.
- assertNull(merkkijono5);
"assertNull()" -toiminto on tarkistaa, että objekti on tyhjä.
Koska string5= null, joka on nolla-arvo, assertNull(merkkijono5) palauttaa totta.
- assertTrue(muuttuja1
"assertTrue()" -toiminto on tarkistaa, että ehto on tosi.
Koska muuttuja1=1 ja muuttuja2=2, mikä osoittaa, että muuttuja1 totta.
- assertArrayEquals(ilmateemaattinenMatriisi1, ilmateemaattinenArrary2);
"assertArrayEquals()" -toiminto on tarkistaa, että odotettu taulukko ja tuloksena oleva taulukko ovat yhtä suuret. Array-tyyppi voi olla int, long, short, char, byte tai java.lang.Object.
Koska airethematicArrary1 = { 1, 2, 3 } ja airethematicArrary2 = { 1, 2, 3 }, mikä osoittaa, että molemmat taulukot ovat yhtä suuria, assertArrayEquals(airethematicArrary1, airethematicArrary2) palauttaa totta
Koska kaikki seitsemän väittää Junit4AssertionTest.java luokka palauttaa arvon tosi, joten kun suoritat testivahvistusluokan, se palauttaa onnistuneen testin. (katso tulos alta)
Vaihe 4) Napsauta hiiren kakkospainikkeella Junit4AssertionTest.java ja napsauta runAs->JUnit. Näet tulosteen alla olevan kuvan mukaisesti:
Yllä oleva tulos näyttää onnistuneen testituloksen odotetusti.
Yhteenveto
Tässä opetusohjelmassa opit kaikki tärkeimmät väittämismenetelmät JUnit. Olet myös nähnyt esimerkkejä väitelauseista. Mikä osoittaa, että jos kaikki väitteet palauttavat tosi, testigraafinen käyttöliittymä palauttaa tosi tuloksen ja jos yksittäinen testi epäonnistuu, se palauttaa epäonnistuneen tuloksen.

