Tavalise stsenaariumi korral katkestate katse, parandate vea ja käivitate testi uuesti, kui tuvastate testi täitmisel vea.
Kuid JUnitil on veidi teistsugune lähenemine. JUniti tõrkeotsijaga saate testi jätkamist jätkata ka pärast probleemi leidmist või testi ebaõnnestumist. Veakoguja kogub kõik tõrkeobjektid ja teatab sellest ainult üks kord pärast testi täitmise lõppu.
Selles õpetuses saate teada
- Mis on veakoguja JUnitis?
- Mis on @ reegel jUnitis?
- Näide ErrorCollectori kasutamisest
- JUniti ErrorCollectori eelised
Miks kasutada Error Collectorit?
Testskripti kirjutamise ajal soovite teha kõik testid ka siis, kui mõni koodirida ebaõnnestub võrgu rikke, väite tõrke või mõne muu põhjuse tõttu. Sellises olukorras saate ikkagi testskripti jätkata, kasutades JUniti pakutavat erifunktsiooni, mida nimetatakse "tõrke kogujaks".
Selleks kasutab JUnit @Rule'i märkust, mida kasutatakse vea koguja objekti loomiseks. Kui vea koguja objekt on loodud, saate hõlpsalt kõik vead objektile lisada, kasutades meetodit addError (heidetav tõrge). Nagu teate, on see Throwable Java- klassis erandklassi ja tõrke klass. Sel viisil vigade lisamisel logitakse need vead JUniti testi tulemustesse.
Kõigi tõrkekoguja vigade lisamise eeliseks on see, et saate kõiki vigu korraga kontrollida. Samuti, kui skript keskel ebaõnnestub, võib ta selle jätkamist jätkata
Märkus . Lihtsa väite või proovimise / püüdmise blokeerimise korral pole vea koguja meetodi kasutamine võimalik.
Näidiskood
Viga Collectori kohta lisateabe saamiseks vaadake allpool olevat koodinäidet, mis näitab, kuidas luua tõrke koguja objekti ja lisada kõik selle objekti vead probleemi jälgimiseks:
pakett guru99.junit;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Rulepublic ErrorCollector collector = uus ErrorCollector ();@Testavalik tühine näide () {collector.addError (new Throwable ("Esimesel real on viga"));collector.addError (new Throwable ("Teises reas on viga"));collector.checkThat (getResults (),mitte (sisaldabString ("siin on viga")));// kõik koodiread käivitatakse ja lõpus kombineeritud tõrgeolema sisse logitud.}}
Mis on @ reegel jUnitis?
JUnit pakub testide, testjuhtumi või testipaketi spetsiaalset käsitlemist, kasutades märkuse @ reegel . Kasutades @rule, saate testi käitumise hõlpsalt lisada või uuesti määratleda.
JUnit API pakub mitmeid sisseehitatud reegleid, mida testija saab kasutada, või võite isegi kirjutada meie enda reegli.
Vaadake allpool olevat koodirida, mis näitab, kuidas kasutada @rule märkust koos Error Collectoriga:
@Rulepublic ErrorCollector collector = uus ErrorCollector ();
Näide ErrorCollectori kasutamisest
Vigakoguja mõistmiseks loome kõigi vigade kogumiseks klassi ja reegli. Lisate siia kõik vead, kasutades addError (heidetavat).
Vaadake allpool olevat koodi, mis loob lihtsalt reegli, mis pole muud kui "Error Collectori objekti" loomine. Mida kasutatakse ka kõigi vigade lisamiseks, et probleemist lõpus teatada:
ErrorCollectorExample.java
pakett guru99.junit;import org.junit.Assert;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Rulepublic ErrorCollector collector = uus ErrorCollector ();@Testavalik tühine näide () {collector.addError (new Throwable ("Esimesel real on viga"));collector.addError (new Throwable ("Teises reas on viga"));System.out.println ("Tere");proovige {Assert.assertTrue ("A" == "B");} saak (visatav t) {koguja.addViga (t);}System.out.println ("Maailm !!!!");}}
TestRunner.java
Lisame testijooksja ülaltoodud testiklassi ja täidame selle kõigi vigade kogumiseks. Vaadake koodi allpool:
pakett guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;avalik klass TestRunner {public staatiline void main (String [] args) {Tulemus = JUnitCore.runClasses (ErrorCollectorExample.class);for (rikke tõrge: result.getFailures ()) {System.out.println (rike.String ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Väljund:
Vaadake tõrke jälge, mis jälgib kõiki vigu ühes kohas:
JUniti ErrorCollectori eelised
JUniti kinnitust saab kasutada funktsionaalseks või graafilise kasutajaliidese valideerimiseks nt
- assertEquals (stringisõnum, oodatav objekt, tegelik objekt), mis võrdlevad, et kaks objekti on võrdsed.
- Samamoodi väidab assertTrue (Boole'i tingimus), et tingimus on tõene.
Väite abil muutub valideerimiskatse lihtsaks. Kuid üks oluline küsimus on see, et testi täitmine peatub isegi siis, kui üks väide ebaõnnestub.
Automaatika edukuse testimiseks on testide järjepidevus ja taastekäsitlus üliolulised. Vigakoguja on parim viis sellist tüüpi stsenaariumide käsitlemiseks.
Kokkuvõte :
- Juniti veakoguja võimaldab testi jätkata ka pärast esimese väljaande leidmist ja testi ebaõnnestumist
- Tõrkekoguja kogub kõik veaobjektid ja teatab sellest ainult pärast testi täitmise lõppu
- Kõigi tõrkekoguja vigade lisamise eeliseks on see, et saate kõiki vigu korraga kontrollida
- Veakoguja lisab vead lihtsalt meetodi addError (thrable err) abil, mille pakub ErrorCollector.java.