Įprastu atveju, kai atlikdami bandymą nustatote kokią klaidą, bandymą sustabdysite, ištaisysite klaidą ir pakartotinai atliksite testą.
Tačiau „JUnit“ požiūris yra šiek tiek kitoks. Naudodami „JUnit“ klaidų rinktuvą, vis tiek galite tęsti bandymą net radę problemą arba nepavykus bandymui. Klaidų rinkėjas renka visus klaidos objektus ir praneša apie juos tik vieną kartą pasibaigus bandymo vykdymui.
Šioje pamokoje sužinosite
- Kas yra klaidų rinkėjas „JUnit“?
- Kas yra „@Rule“ „jUnit“?
- Pavyzdys naudojant „ErrorCollector“
- „JUnit ErrorCollector“ pranašumai
Kodėl verta naudoti „Error Collector“?
Rašydami bandomąjį scenarijų, norite atlikti visus testus, net jei kuri nors kodo eilutė nepavyksta dėl tinklo gedimo, tvirtinimo gedimo ar kitos priežasties. Tokiu atveju vis tiek galite tęsti bandomojo scenarijaus vykdymą naudodami specialią „JUnit“ teikiamą funkciją, vadinamą „klaidų surinkėju“.
Tam „JUnit“ naudoja @Rule anotaciją, kuri naudojama kuriant klaidų surinkėjo objektą. Sukūrus klaidų rinkimo objektą, galite lengvai įtraukti visas klaidas į objektą naudodami metodą addError (mesti klaidą). Kaip žinote, „ Throwable“ yra „ Java“ klasė „ Exception and Error“ . Tokiu būdu pridėjus klaidų, šios klaidos bus užregistruotos „JUnit“ testo rezultate.
Pridedant visas klaidas „Error Collector“ yra tas pranašumas, kad galite patikrinti visas klaidas vienu metu. Be to, jei scenarijus nepavyksta viduryje, jis vis tiek gali tęsti jo vykdymą
Pastaba : Jei naudojate paprastą teiginį arba bandymo / gaudymo bloką, naudoti klaidų surinkimo metodą nebus įmanoma.
Kodo pavyzdys
Norėdami daugiau sužinoti apie klaidų surinkėją, žr. Toliau pateiktą kodo pavyzdį, kuris parodo, kaip sukurti klaidų rinkimo objektą ir pridėkite visas to objekto klaidas, kad galėtumėte išspręsti problemą:
paketas guru99.junit;importuoti org.junit.Rule;importuoti org.junit.Test;importuoti org.junit.rules.ErrorCollector;viešosios klasės „ErrorCollectorExample“@ Taisyklėpublic ErrorCollector collector = new ErrorCollector ();@Testviešas niekinis pavyzdys () {collector.addError (new Throwable ("Pirmoje eilutėje yra klaida"));collector.addError (new Throwable ("Antroje eilutėje yra klaida"));collector.checkThat (getResults (),not (saturString ("čia yra klaida")));// bus įvykdytos visos kodo eilutės, o pabaigoje - kombinuota klaidabūti prisijungęs.}}
Kas yra „@Rule“ „jUnit“?
„JUnit“ suteikia specialų bandymų, „Test Case“ ar „test suite“ tvarkymo būdą naudodamas „ @rule“ anotaciją . Naudodami @rule, galite lengvai pridėti arba iš naujo apibrėžti testo veikimą.
Yra kelios įmontuotos „JUnit“ API teikiamos taisyklės, kurias gali naudoti testuotojas, arba jūs netgi galite parašyti savo taisyklę.
Žr. Žemiau esančią kodo eilutę, kurioje parodyta, kaip naudoti @rule anotaciją kartu su „Error Collector“:
@ Taisyklėpublic ErrorCollector collector = new ErrorCollector ();
Pavyzdys naudojant „ErrorCollector“
Norėdami suprasti klaidų surinkėją, sukurkime klasę ir taisyklę, kad surinktume visas klaidas. Čia pridėsite visas klaidas naudodami addError (thrable).
Žiūrėkite žemiau esantį kodą, kuris tiesiog sukuria taisyklę, kuri yra ne kas kita, kaip „Klaidų rinkimo objekto“ sukūrimas. Kuris toliau naudojamas pridėti visas klaidas, kad galėtumėte pranešti apie problemą pabaigoje:
ErrorCollectorExample.java
paketas guru99.junit;importuoti org.junit.Assert;importuoti org.junit.Rule;importuoti org.junit.Test;importuoti org.junit.rules.ErrorCollector;viešosios klasės „ErrorCollectorExample“@ Taisyklėpublic ErrorCollector collector = new ErrorCollector ();@Testviešas niekinis pavyzdys () {collector.addError (new Throwable ("Pirmoje eilutėje yra klaida"));collector.addError (new Throwable ("Antroje eilutėje yra klaida"));System.out.println („Labas“);bandyti {„Assert.assertTrue“ („A“ == „B“);} pagauti (metamas t) {kolekcionierius.addError (t);}System.out.println („Pasaulis !!!!“);}}
TestRunner.java
Pridėkime aukščiau bandymo bėgiko bandymo klasę ir vykdykime, kad surinktume visas klaidas. Žiūrėkite žemiau esantį kodą:
paketas guru99.junit;importuoti org.junit.runner.JUnitCore;importuoti org.junit.runner.Result;importuoti org.junit.runner.notification.Failure;viešoji klasė „TestRunner“public static void main (String [] argumentuoja) {Rezultato rezultatas = JUnitCore.runClasses (ErrorCollectorExample.class);už (Nesėkmės gedimas: rezultatas.getFailures ()) {System.out.println (Gedimas.String ());}System.out.println ("Rezultatas ==" + rezultatas.veiksmingai ());}}
Išvestis:
Peržiūrėkite gedimo pėdsaką, kuris surenka visas klaidas vienoje vietoje:
„JUnit ErrorCollector“ pranašumai
JUnit tvirtinimą galite naudoti funkciniam ar GUI patvirtinimui, pvz
- „assertEquals“ (eilutės pranešimas, laukiamas objektas, tikrasis objektas), kurie palygina, kad du objektai yra lygūs.
- Panašiai „assertTrue“ (Būlo sąlyga) teigia, kad sąlyga yra teisinga.
Naudojant teiginį, patvirtinimo testas tampa lengvas. Tačiau viena iš pagrindinių problemų yra ta, kad bandymo vykdymas bus sustabdytas, net jei nepavyks padaryti vieno teiginio.
Testavimo tęstinumas ir atkūrimo tvarkymas yra labai svarbūs norint išbandyti automatikos sėkmę. Klaidų rinkėjas yra geriausias būdas valdyti tokio pobūdžio scenarijus.
Santrauka :
- „Junit“ klaidų rinktuvas leidžia bandymą tęsti net radus pirmąją problemą, o pabaigoje bandymas nepavyksta
- Klaidų rinkėjas renka visus klaidos objektus ir praneša tik apie tai, kai bandymas vykdomas
- Pridedant visas klaidas „Error Collector“ yra tas pranašumas, kad galite patikrinti visas klaidas vienu metu
- Klaidų rinkėjas tiesiog prideda klaidas naudodamas metodą addError (thrable err), kurį pateikia ErrorCollector.java.