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ä

  1. väittää totta(ehto)
  2. väittää False (ehto)

Tässä ehto on boolen arvo.

Nollaobjekti

Jos haluat tarkistaa objektin/muuttujan alkuarvon, sinulla on seuraavat menetelmät:

  1. assertNull(objekti)
  2. 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.

  1. assertSame(odotettu, todellinen), Se tulee takaisin todeksi, jos odotettu == todellinen
  2. 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:

  1. 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.

  1. 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.

  1. 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.

  1. assertNotNull(merkkijono1);

"assertNotNull()" -toiminto on tarkistaa, että objekti ei ole tyhjä.

Koska merkkijono1 = "Junit", joka on ei-nolla-arvo, joten assertNotNull(merkkijono1) palauttaa totta.

  1. assertNull(merkkijono5);

"assertNull()" -toiminto on tarkistaa, että objekti on tyhjä.

Koska string5= null, joka on nolla-arvo, assertNull(merkkijono5) palauttaa totta.

  1. assertTrue(muuttuja1

"assertTrue()" -toiminto on tarkistaa, että ehto on tosi.

Koska muuttuja1=1 ja muuttuja2=2, mikä osoittaa, että muuttuja1 totta.

  1. 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:

JUnit Vahvista esimerkki

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.

Tiivistä tämä viesti seuraavasti: