JUnit Testitapaukset @Before @BeforeClass Annotation

JUnit on suosituin yksikkö Testaus puitteet sisään Java. Sitä suositellaan nimenomaisesti Yksikkötestaus. JUnit ei vaadi palvelinta web-sovellusten testaamiseen, mikä tekee testausprosessista nopean.

JUnit puite mahdollistaa myös nopean ja helpon testitapausten ja testitietojen luomisen. The org.Junit paketti sisältää monia rajapintoja ja luokkia JUnit Testaus, kuten Test, Assert, After, Before jne.

Mikä on testilaite

Ennen kuin ymmärrämme, mikä testilaite on, tutkitaan alla olevaa koodia

Tämä koodi on suunniteltu suorittamaan kaksi testitapausta yksinkertaisessa tiedostossa.

public class OutputFileTest {
    private File output; 
    output = new File(...);
    output.delete(); 
public void testFile1(){
        //Code to verify Test Case 1
}
    output.delete();
    output = new File(...);
public void testFile2(){
        //Code to verify Test Case 2
}
 output.delete(); 
}

Tässä vähän ongelmia

  • Koodi ei ole luettavissa
  • Koodia ei ole helppo ylläpitää.
  • Kun testisarja on monimutkainen, koodi saattaa sisältää loogisia ongelmia.

Vertaa samaa koodia käyttämällä JUnit

public class OutputFileTest		
{
    private File output; 
    @Before public void createOutputFile() 
    { 
       output = new File(...);
    }
  
	@After public void deleteOutputFile() 
    {
        output.delete(); 
    } 
     
    @Test public void testFile1() 
    {
       // code for test case objective
    } 
	@Test public void testFile2() 
    {
       // code for test case objective
    }
}

Koodi on paljon luettavampi ja ylläpidettävämpi. Yllä oleva koodirakenne on a Testilaite.

Testilaite on konteksti, jossa a JUnit Testitapaus juoksee. Tyypillisesti testivarusteisiin kuuluvat:

  • Objektit tai resurssit, jotka ovat käytettävissä mihin tahansa testitapaukseen.
  • Tarvittavat toiminnot, jotka saavat nämä objektit/resurssit saataville.
  • Nämä toiminnot ovat
    1. jako (setup)
    2. jakaminen (purkamisen).

Asennus ja purku

  • Yleensä on joitain toistuvia tehtäviä, jotka on tehtävä ennen jokaista testitapausta. Esimerkiksi: luo tietokantayhteys.
  • Samoin jokaisen testitapauksen lopussa voi olla toistuvia tehtäviä. Esimerkiksi: puhdistaa, kun testi on suoritettu.
  • JUnit tarjoaa huomautuksia, jotka auttavat asennuksessa ja purkamisessa. Se varmistaa, että resurssit vapautuvat ja testijärjestelmä on valmiina seuraavaa testitapausta varten.

Nämä JUnit huomautuksia käsitellään alla -

Perustaa

@Ennen huomautus sisään JUnit käytetään menetelmässä, joka sisältää Java koodi, joka suoritetaan ennen jokaista testitapausta. eli se suoritetaan ennen jokaista testisuoritusta.

Purkaminen (tuomiosta riippumatta)

@Jälkeen annotaatiota käytetään menetelmässä, joka sisältää java-koodin, joka suoritetaan jokaisen testitapauksen jälkeen. Nämä menetelmät toimivat, vaikka testitapauksessa tai väitteen epäonnistuessa poikkeuksia olisi tehty.

Huomautus:

  • Yllä lueteltuja huomautuksia saa olla mikä tahansa määrä.
  • Kaikki menetelmät, joihin on merkitty @Ennen in JUnit suoritetaan ennen jokaista testitapausta, mutta ne voidaan suorittaa missä tahansa järjestyksessä.
  • Voit periä @Before- ja @After-metodit superluokasta. Suoritus on seuraava: Se on tavallinen suoritusprosessi JUnit.
  1. Suorita JUnit @Ennen menetelmät superluokassa
  2. Suorita @Before-metodit tässä luokassa
  3. Suorita @Test-menetelmä tässä luokassa
  4. Suorita @After-menetelmät tässä luokassa
  5. Suorita @After-metodit superluokassa

Esimerkki: Luokan luominen tiedoston kanssa testilaitteena

public class OutputFileTest		
{
    private File output; 
    @Before	public void createOutputFile() 
    { 
       output = new File(...);
    }
  
	@After public void deleteOutputFile() 
    {
        output.delete(); 
    } 
     
    @Test public void testFile1() 
    {
       // code for test case objective
    } 
	@Test public void testFile2() 
    {
       // code for test case objective
    }
}

Yllä olevassa esimerkissä suoritusketju on seuraava:

Asennus ja purku

  1. createOutputFile()
  2. testitiedosto1()
  3. deleteOutputFile()
  4. createOutputFile()
  5. testitiedosto2()
  6. deleteOutputFile()

Oletus:

testFile1() suoritetaan ennen testFile2() - mitä ei taata.

Kertakäyttöinen asennus

  • Menetelmä on mahdollista suorittaa vain kerran koko testiluokassa ennen kuin jokin testeistä suoritetaan, ja ennen @Ennen menetelmä(t).
  • Vain kerran -asetukset ovat hyödyllisiä palvelimien käynnistämisessä, viestinnän avaamisessa jne. Resurssien sulkeminen ja uudelleen avaaminen jokaista testiä varten vie aikaa.
  • Tämä voidaan tehdä huomautuksen avulla @Ennen tuntia in JUnit.
@BeforeClass public static void Method_Name() {	
    // class setup code here	
 }	

Vain kerran purkaa

  • Kerran määrityksen tapaan käytettävissä on myös kertaluonteinen puhdistusmenetelmä. Se toimii kaikkien testitapausmenetelmien ja @Jälkeen huomautukset on suoritettu.
  • Se on hyödyllinen palvelinten pysäyttämisessä, viestintälinkkien sulkemisessa jne.
  • Tämä voidaan tehdä käyttämällä @Oppitunnin jälkeen huomautus
 @AfterClass public static void Method_Name()	
 {	
    // class cleanup code here	
 }	

JUnit Testaa Suites

Jos haluamme suorittaa useita testejä tietyssä järjestyksessä, se voidaan tehdä yhdistämällä kaikki testit yhteen paikkaan. Tätä paikkaa kutsutaan testisviiteiksi. Lisätietoja testipakettien suorittamisesta ja sen käytöstä JUnit käsitellään tässä oppitunti.

Junit Test Runner

JUnit tarjoaa työkalun testitapausten suorittamiseen.

  • JUnitYdin luokkaa käytetään näiden testien suorittamiseen.
  • Menetelmä nimeltä runClasses antamat org.junit.runner.JUnitYdin, käytetään yhden tai useamman testiluokan suorittamiseen.
  • Tämän menetelmän palautustyyppi on Tulos esine (org.junit.runner.Result), jota käytetään kokeisiin liittyvien tietojen saamiseksi. Katso seuraava koodiesimerkki selvyyden vuoksi.
public class Test {				
			public static void main(String[] args) {									
       		Result result = JUnitCore.runClasses(CreateAndSetName.class);					
			for (Failure failure : result.getFailures()) {							
         		System.out.println(failure.toString());					
      }		
      System.out.println(result.wasSuccessful());					
   }		
}      

Yllä olevassa koodissa "tulos"-objekti käsitellään suorittamiemme testitapausten epäonnistumisten ja onnistuneiden tulosten saamiseksi.

Etunimi JUnit ohjelma

Kohtuullinen tietämys SDLC:stä, java-ohjelmoinnista ja sen perusteista ohjelmistojen testaus prosessi auttaa ymmärtämään JUnit ohjelma.

Ymmärretään yksikkötestaus elävän esimerkin avulla. Meidän on luotava testiluokka, johon on merkitty testimenetelmä @Testata kuten alla on annettu:

MyFirstClassTest.java

package guru99.JUnit;		

import static org.JUnit.Assert.*;				

import org.JUnit.Test;		

public class MyFirstClassTest {				

    @Test		
    public void myFirstMethod(){					
        String str= "JUnit is working fine";					
        assertEquals("JUnit is working fine",str);					
    }
}		

TestRunner.java

Testausmenetelmämme (yllä) suorittamiseksi meidän on luotava testiajo. Testaajassa meidän on lisättävä testiluokka parametriksi JUnitCoren runclasses() -metodi . Se palauttaa testituloksen sen perusteella, onko testi läpäissyt vai hylätty.

Katso lisätietoja tästä alla olevasta koodista:

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(MyFirstClassTest.class);					
			for (Failure failure : result.getFailures()) {							
              System.out.println(failure.toString());					
      }		
      System.out.println("Result=="+result.wasSuccessful());							
   }		
}      	

ulostulo

Kerran TestRunner.java suorittaa testimenetelmämme, josta saamme tuloksen epäonnistuneena tai hyväksytynä. Alla tulosteen selitys:

  1. Tässä esimerkissä suorituksen jälkeen MyFirstClassTest.java , testi on hyväksytty ja tulos on vihreä.
  2. Jos se olisi epäonnistunut, sen olisi pitänyt näyttää tulos punaisena ja vika voidaan havaita vikajäljessä. Katso alempaa JUnit gui:

JUnit ohjelman lähtö

Yhteenveto

  • JUnit on kehys, joka tukee useita huomautuksia testin sisältävän menetelmän tunnistamiseksi.
  • JUnit tarjoaa huomautuksen nimeltä @Testata, joka kertoo JUnit että public void -menetelmä, jossa sitä käytetään, voidaan suorittaa testitapauksena.
  • Testilaite on konteksti, jossa testitapaus suoritetaan
  • Jos haluat suorittaa useita testejä tietyssä järjestyksessä, se voidaan tehdä yhdistämällä kaikki testit yhteen paikkaan. Tätä paikkaa kutsutaan testisviiteiksi.
  • JUnit tarjoaa työkalun testien suorittamiseen, jossa voimme suorittaa testitapauksiamme, joita kutsutaan Test Runneriksi.