JUnit testa lietas @Pirms @BeforeClass Anotācija

Satura rādītājs:

Anonim

JUnit ir vispopulārākā Java testēšanas sistēma. Tas ir nepārprotami ieteicams vienību testēšanai. JUnit nav nepieciešams serveris, lai pārbaudītu tīmekļa lietojumprogrammu, kas testēšanas procesu padara ātru.

JUnit ietvars ļauj arī ātri un viegli ģenerēt testa gadījumus un testu datus. Org.Junit pakete sastāv no daudziem interfeisiem un klasēs JUnit pārbaudes, piemēram, tests, aizstāvēt, pēc, pirms, uc

Kas ir Testa stiprinājums

Pirms mēs saprotam, kas ir testa aprīkojums, izpētīsim zemāk redzamo kodu

Šis kods ir paredzēts, lai izpildītu divus testa gadījumus vienkāršā failā.

public class OutputFileTest {privāta Faila izvade;output = jauns fails (…);izeja.dzēst ();public void testFile1 () {// Kods 1. pārbaudes gadījuma pārbaudei}izeja.dzēst ();output = jauns fails (…);public void testFile2 () {// Kods, lai pārbaudītu 2. testa gadījumu}izeja.dzēst ();}

Šeit ir daži jautājumi

  • Kods nav lasāms
  • Kodu nav viegli uzturēt.
  • Ja testa komplekts ir sarežģīts, kodā var būt loģiskas problēmas.

Izmantojot JUnit, salīdziniet to pašu kodu

publiskā klase OutputFileTest{privāta Faila izvade;@Pirms publiska tukšuma createOutputFile (){output = jauns fails (…);}@After public void deleteOutputFile (){izeja.dzēst ();}@Test public void testFile1 (){// kods testa gadījuma mērķim}@Test public void testFile2 (){// kods testa gadījuma mērķim}}

Kods ir daudz lasāmāks un uzturamāks. Iepriekš minētā koda struktūra ir testa stiprinājums.

Testa aprīkojums ir konteksts, kurā darbojas testa lieta. Parasti testa aprīkojums ietver:

  • Objekti vai resursi, kas ir pieejami jebkuram testa gadījumam.
  • Nepieciešamās darbības, kas padara šos objektus / resursus pieejamus.
  • Šīs aktivitātes ir
    1. piešķiršana ( iestatīšana )
    2. atdalīšana ( nojaukšana ).

Iestatīšana un nojaukšana

  • Parasti pirms katra testa gadījuma ir jāveic daži atkārtoti uzdevumi. Piemērs: izveidojiet datu bāzes savienojumu.
  • Tāpat katra testa gadījuma beigās var būt daži atkārtoti uzdevumi. Piemērs: iztīrīt, kad testa izpilde ir beigusies.
  • JUnit nodrošina anotācijas, kas palīdz iestatīt un nojaukt. Tas nodrošina resursu atbrīvošanu un testa sistēmu nākamajam testa gadījumam.

Šīs anotācijas ir apskatītas turpmāk -

Uzstādīt

@Before anotācija tiek izmantota metodei, kas satur Java kodu, lai palaistu pirms katra testa gadījuma. ti, tas darbojas pirms katras testa izpildes.

Nojaukšana (neatkarīgi no sprieduma)

@Pēc anotācijas tiek izmantota metode, kas satur Java kodu, lai palaistu pēc katra testa gadījuma. Šīs metodes darbosies pat tad, ja testa gadījumā vai apgalvojuma kļūmju gadījumā tiek izvirzīti kādi izņēmumi.

Piezīme:

  • Ir atļauts izmantot jebkuru iepriekš uzskaitīto anotāciju skaitu.
  • Visas metodes, kas anotētas ar @Before , darbosies pirms katra testa gadījuma, taču tās var darboties jebkurā secībā.
  • Jūs varat mantot @Before un @After metodes no super klases, Izpilde notiek šādi: Tas ir standarta izpildes process JUnit.
  1. Izpildiet @Before metodes superklasē
  2. Šajā klasē izpildiet @Before metodes
  3. Šajā klasē izpildiet @Test metodi
  4. Šajā klasē izpildiet @After metodes
  5. Izpildiet @After metodes superklasē

Piemērs: klases izveidošana ar failu kā testa armatūru

publiskā klase OutputFileTest{privāta Faila izvade;@Pirms publiska tukšuma createOutputFile (){output = jauns fails (…);}@After public void deleteOutputFile (){izeja.dzēst ();}@Test public void testFile1 (){// kods testa gadījuma mērķim}@Test public void testFile2 (){// kods testa gadījuma mērķim}}

Iepriekš minētajā piemērā izpildes ķēde būs šāda -

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

Pieņēmums: testFile1 () darbojas pirms testFile2 () - kas netiek garantēts.

Vienreizēja iestatīšana

  • Metodi var palaist tikai vienu reizi visā testa klasē pirms jebkura testa izpildes un pirms jebkuras (-ām) @Before metodes (-ām).
  • "Vienreiz iestatīšana" ir noderīga, lai sāktu serverus, atvērtu sakarus utt. Katra testa resursu aizvēršana un atkārtota atvēršana ir laikietilpīga.
  • To var izdarīt, izmantojot anotāciju @BeforeClass
@BeforeClass public static void Method_Name () {// klases iestatīšanas kods šeit}

Vienreiz vien nojaukt

  • Līdzīgi kā vienreiz iestatīšanai, ir pieejama arī vienreizēja tīrīšanas metode. Tas darbojas pēc visām testa gadījumu metodēm un @ pēc tam, kad ir izpildītas anotācijas.
  • Tas ir noderīgi, lai apturētu serverus, aizvērtu sakaru saites utt.
  • To var izdarīt, izmantojot @AfterClass anotāciju
@AfterClass public static void Method_Name (){// klases uzkopšanas kods šeit}

JUnit Test Suites

Ja mēs vēlamies veikt vairākus testus noteiktā secībā, to var izdarīt, apvienojot visus testus vienā vietā. Šo vietu sauc par testa komplektiem. Sīkāka informācija par to, kā izpildīt testa komplektus un kā to izmantot JUnit, tiks aplūkota šajā apmācībā.

Junita testa skrējējs

JUnit nodrošina rīku testa lietu izpildei.

  • Šo testu veikšanai tiek izmantota JUnitCore klase.
  • Metode ar nosaukumu runClasses, ko nodrošina org.junit.runner.JUnitCore, tiek izmantota, lai palaistu vienu vai vairākas testa klases.
  • Šīs metodes atgriešanas veids ir objekts Rezultāts ( org.junit.runner.Result ), ko izmanto, lai piekļūtu informācijai par testiem. Lai iegūtu lielāku skaidrību, skatiet šo koda piemēru.
publiskās klases tests {public static void main (String [] args) {Rezultāta rezultāts = JUnitCore.runClasses (CreateAndSetName.class);par (Neveiksmes kļūme: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println (result.wasSuccessful ());}}

Iepriekš minētajā kodā tiek apstrādāts objekts "rezultāts", lai iegūtu kļūmes un veiksmīgus testu gadījumu rezultātus, kurus mēs izpildām.

Pirmā JUnit programma

Pareizas zināšanas par SDLC, Java programmēšanu un programmatūras testēšanas procesa pamatiem palīdz izprast JUnit programmu.

Sapratīsim vienību testēšanu, izmantojot tiešo piemēru. Mums jāizveido testa klase ar testa metodi, kas anotēta ar @Test, kā norādīts zemāk:

MyFirstClassTest.java

pakete guru99.JUnit;importēt statisko org.JUnit.Assert. *;importēt org.JUnit.Test;publiskā klase MyFirstClassTest {@Pārbaudepublic anulēt myFirstMethod () {String str = "JUnit darbojas labi";assertEquals ("JUnit strādā labi", str);}}

TestRunner.java

Lai izpildītu mūsu testa metodi (iepriekš), mums jāizveido testa skrējējs. Testa skrējējā JUnitCore runclasses () metodē mums kā parametrs jāpievieno testa klase. Tas atgriezīs testa rezultātu, pamatojoties uz to, vai tests ir izturēts vai neizdevās.

Lai iegūtu sīkāku informāciju par to, skatiet zemāk esošo kodu:

pakete guru99.JUnit;importēt org.JUnit.runner.JUnitCore;importēt org.JUnit.runner.Result;importēt org.JUnit.runner.notification.Failure;publiskā klase TestRunner {public static void main (String [] args) {Rezultāta rezultāts = JUnitCore.runClasses (MyFirstClassTest.class);par (Neveiksmes kļūme: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Rezultāts

Kad TestRunner.java izpilda mūsu testa metodes, mēs iegūstam rezultātu kā neizdevušos vai izturētu. Lūdzu, zemāk atrodiet izvades skaidrojumu:

  1. Šajā piemērā pēc MyFirstClassTest.java izpildes pārbaude ir nokārtota un rezultāts ir zaļā krāsā.
  2. Ja tas būtu izgāzies, tam būtu jāparāda rezultāts, jo sarkanā krāsā un kļūmi var novērot neveiksmes izsekošanas laikā. Skatīt zemāk JUnit gui:

Kopsavilkums :

  • JUnit ir sistēma, kas atbalsta vairākas anotācijas, lai identificētu metodi, kas satur testu.
  • JUnit nodrošina anotāciju ar nosaukumu @Test, kas JUnit norāda, ka publiskā tukšuma metode, kurā tā tiek izmantota, var darboties kā testa gadījums.
  • Testa aprīkojums ir konteksts, kurā darbojas testa lieta
  • Lai veiktu vairākus testus noteiktā secībā, to var izdarīt, apvienojot visus testus vienā vietā. Šo vietu sauc par testa komplektiem.
  • JUnit nodrošina rīku testu veikšanai, kur mēs varam palaist savus testa gadījumus, kurus sauc par Test Runner.