JUnit Test Case @Before @BeforeClass Bilješka

Sadržaj:

Anonim

JUnit je najpopularniji okvir za jedinstveno testiranje na Javi. Izričito se preporučuje za jedinično testiranje. JUnit ne zahtijeva poslužitelj za testiranje web aplikacija, što ubrzava postupak testiranja.

JUnit okvir također omogućuje brzo i jednostavno generiranje test slučajeva i podataka o testovima. Paket org.Junit sastoji se od mnogih sučelja i klasa za JUnit testiranje poput Test, Assert, After, Before itd.

Što je ispitno tijelo

Prije nego što shvatimo što je ispitno tijelo, proučimo donji kod

Ovaj je kod dizajniran za izvršavanje dva testna slučaja na jednostavnoj datoteci.

javna klasa OutputFileTest {privatni izlaz datoteke;izlaz = nova datoteka (…);output.delete ();public void testFile1 () {// Kôd za provjeru testnog slučaja 1}output.delete ();izlaz = nova datoteka (…);public void testFile2 () {// Kôd za provjeru testnog slučaja 2}output.delete ();}

Nekoliko izdanja ovdje

  • Kôd nije čitljiv
  • Kôd nije lako održavati.
  • Kad je testni paket složen, kôd može sadržavati logičke probleme.

Usporedite isti kod pomoću JUnit-a

javna klasa OutputFileTest{privatni izlaz datoteke;@Prije javne void createOutputFile (){izlaz = nova datoteka (…);}@Nakon javne praznine deleteOutputFile (){output.delete ();}@Test public void testFile1 (){// kôd cilja testnog slučaja}@Test public void testFile2 (){// kôd cilja testnog slučaja}}

Kôd daleko čitljiviji i održiviji. Gornja struktura koda je ispitno sredstvo .

Ispitno tijelo je kontekst u kojem se pokreće test slučaj. Uobičajeno, ispitni uređaji uključuju:

  • Predmeti ili resursi dostupni za bilo koji testni slučaj.
  • Potrebne aktivnosti koje ove objekte / resurse čine dostupnima.
  • Te su aktivnosti
    1. alokacija ( postavljanje )
    2. odvajanje ( uklanjanje ).

Postavljanje i uklanjanje

  • Obično se ponavljaju neki zadaci koje je potrebno obaviti prije svakog ispitivanja. Primjer: stvorite vezu baze podataka.
  • Isto tako, na kraju svakog test slučaja mogu se nalaziti neki ponovljeni zadaci. Primjer: čišćenje nakon završetka testa.
  • JUnit nudi bilješke koje pomažu u postavljanju i uklanjanju. Osigurava oslobađanje resursa, a testni sustav je spreman za sljedeći testni slučaj.

O tim se bilješkama govori u nastavku -

Postaviti

@Before bilješka koristi se na metodi koja sadrži Java kôd i koja se pokreće prije svakog test slučaja. tj. izvodi se prije svakog izvođenja testa.

Teardown (bez obzira na presudu)

@Napomena se koristi na metodi koja sadrži java kôd i koja se pokreće nakon svakog test slučaja. Te će se metode izvoditi čak i ako se izuzmu bilo kakve iznimke u testnom slučaju ili u slučaju neuspjeha u tvrdnji.

Bilješka:

  • Dopušteno je imati bilo koji broj gore navedenih napomena.
  • Sve metode označene s @Before pokrenut će se prije svakog test slučaja, ali mogu se pokretati u bilo kojem redoslijedu.
  • Možete naslijediti metode @Before i @After iz super klase, Izvršenje je sljedeće: To je standardni postupak izvršenja u JUnit-u.
  1. Izvršite metode @Before u superrazredu
  2. Izvršite metode @Before u ovoj klasi
  3. Izvršite metodu @Test u ovoj klasi
  4. Izvršite metode @After u ovoj klasi
  5. Izvršite metode @After u superrazredu

Primjer: Stvaranje klase s datotekom kao testnim uređajem

javna klasa OutputFileTest{privatni izlaz datoteke;@Prije javne void createOutputFile (){izlaz = nova datoteka (…);}@Nakon javne praznine deleteOutputFile (){output.delete ();}@Test public void testFile1 (){// kôd cilja testnog slučaja}@Test public void testFile2 (){// kôd cilja testnog slučaja}}

U gornjem primjeru lanac izvršenja bit će sljedeći -

  1. createOutputFile ()
  2. testFile1 ()
  3. deleteOutputFile ()
  4. createOutputFile ()
  5. testFile2 ()
  6. deleteOutputFile ()

Pretpostavka: testFile1 () pokreće se prije testFile2 () - što nije zajamčeno.

Postavljanje samo jednom

  • Metodu je moguće pokrenuti samo jednom za cijelu klasu testa prije nego što se izvrši bilo koji test i prije bilo koje metode (i) prije.
  • "Jednom samo postavljanje" korisno je za pokretanje poslužitelja, otvaranje komunikacija itd. Zatvaranje i ponovno otvaranje resursa za svaki test dugo traje.
  • To se može učiniti pomoću bilješke @BeforeClass
@BeforeClass javna statička praznina Method_Name () {// kod za postavljanje klase ovdje}

Jednom sruši

  • Slično kao samo jednom postavljanje, dostupna je i metoda čišćenja jednom. Izvodi se nakon izvršavanja svih metoda test slučaja i @Nakon što se izvrše napomene.
  • Korisno je za zaustavljanje poslužitelja, zatvaranje komunikacijskih veza itd.
  • To se može učiniti pomoću bilješke @AfterClass
@AfterClass javna statička praznina Method_Name (){// kod za čišćenje klase ovdje}

JUnit Test Suites

Ako želimo izvršiti više testova u određenom redoslijedu, to se može učiniti kombiniranjem svih testova na jednom mjestu. Ovo se mjesto naziva testnim apartmanima. Više detalja o tome kako izvršiti testne pakete i kako se koristi u JUnit-u bit će obrađeno u ovom vodiču.

Junit test trkač

JUnit nudi alat za izvršavanje vaših test slučajeva.

  • Klasa JUnitCore koristi se za izvršavanje ovih testova.
  • Metoda nazvana runClasses koju pruža org.junit.runner.JUnitCore koristi se za pokretanje jedne ili nekoliko test klasa.
  • Vrsta povrata ove metode je objekt Rezultat ( org.junit.runner.Result ), koji se koristi za pristup informacijama o testovima. Pogledajte sljedeći primjer koda za veću jasnoću.
test javne klase {javna statička void glavna (String [] args) {Rezultat rezultata = JUnitCore.runClasses (CreateAndSetName.class);for (Neuspjeh neuspjeha: result.getFailures ()) {System.out.println (neuspjeh.toString ());}System.out.println (result.wasSuccessful ());}}

U gornjem kodu objekt "rezultat" obrađuje se radi dobivanja neuspjeha i uspješnih ishoda testnih slučajeva koje izvršavamo.

Prvi program JUnit

Pošteno poznavanje SDLC-a, Java programiranja i osnova procesa testiranja softvera pomaže u razumijevanju JUnit programa.

Shvatimo Unit Testiranje na primjeru uživo. Moramo stvoriti test klasu s test metodom označenom s @Test kako je dano u nastavku:

MyFirstClassTest.java

paket guru99.JUnit;uvoz statičke org.JUnit.Assert. *;import org.JUnit.Test;javna klasa MyFirstClassTest {@Testjavna void myFirstMethod () {String str = "JUnit dobro radi";assertEquals ("JUnit dobro radi", str);}}

TestRunner.java

Da bismo izvršili našu testnu metodu (gore), moramo stvoriti testni trkač. U testnom pokretaču moramo dodati klasu ispitivanja kao parametar u metodi JUnitCore's runclasses (). Vratit će rezultat testa na temelju toga je li test položen ili nije.

Za više detalja o tome pogledajte donji kod:

paket guru99.JUnit;import org.JUnit.runner.JUnitCore;import org.JUnit.runner.Result;import org.JUnit.runner.notification.Failure;javna klasa TestRunner {javna statička void glavna (String [] args) {Rezultat rezultata = JUnitCore.runClasses (MyFirstClassTest.class);for (Neuspjeh neuspjeha: result.getFailures ()) {System.out.println (neuspjeh.toString ());}System.out.println ("Rezultat ==" + rezultat.bio je uspješan ());}}

Izlaz

Jednom kada TestRunner.java izvrši naše metode ispitivanja, dobivamo izlaz kao neuspješan ili prošao. U nastavku potražite objašnjenje rezultata:

  1. U ovom primjeru, nakon izvršavanja MyFirstClassTest.java , test je prošao, a rezultat je zelene boje.
  2. Ako ne bi uspjelo, trebao je prikazati rezultat kao crveni, a neuspjeh se može primijetiti u tragu kvara. Pogledajte dolje JUnit gui:

Sažetak :

  • JUnit je okvir koji podržava nekoliko bilješki za identificiranje metode koja sadrži test.
  • JUnit pruža napomenu pod nazivom @Test, koja JUnit-u govori da se metoda javnog void-a u kojoj se koristi može pokrenuti kao testni slučaj.
  • Ispitna oprema je kontekst u kojem se pokreće testni slučaj
  • Da biste izvršili više testova u određenom redoslijedu, to se može učiniti kombiniranjem svih testova na jednom mjestu. Ovo se mjesto naziva testnim apartmanima.
  • JUnit nudi alat za izvršavanje testova u kojem možemo pokrenuti svoje test slučajeve nazvane Test Runner.