JUnit ErrorCollector @Rule with Example

Sisällysluettelo:

Anonim

Normaalissa tilanteessa, kun havaitset virheen testin suorittamisen aikana, lopetat testin, korjaat virheen ja suoritat testin uudelleen.

Mutta JUnitilla on hieman erilainen lähestymistapa. JUnit-virheenkerääjällä voit silti jatkaa testin suorittamista myös ongelman löytämisen tai testin epäonnistumisen jälkeen. Virheenkerääjä kerää kaikki virheobjektit ja raportoi niistä vain kerran testin suorittamisen jälkeen.

Tässä opetusohjelmassa opit-

  • Mikä on virheenkerääjä JUnitissa?
  • Mikä on @Rule jUnitissa?
  • Esimerkki ErrorCollectorin käytöstä
  • JUnit ErrorCollectorin edut

Miksi käyttää Error Collectoria?

Testikoodia kirjoittaessasi haluat suorittaa kaikki testit, vaikka mikä tahansa koodirivi epäonnistuu verkon, väitevian tai muun syyn vuoksi. Tässä tilanteessa voit silti jatkaa testikoodin suorittamista käyttämällä JUnitin tarjoamaa erityisominaisuutta, joka tunnetaan nimellä "virheenkerääjä".

Tätä varten JUnit käyttää @Rule-merkintää, jota käytetään virheenkerääjän objektin luomiseen. Kun virheenkerääjäobjekti on luotu, voit lisätä kaikki virheet objektiin helposti menetelmällä addError (Heitettävä virhe). Kuten tiedätte, että Throwable on super luokan Exception ja Error luokan Java. Kun lisäät virheitä tällä tavalla, nämä virheet kirjataan JUnit-testitulokseen.

Kaikkien virheiden lisäämisen virheenkerääjään etuna on, että voit tarkistaa kaikki virheet kerralla. Jos komentosarja epäonnistuu keskellä, se voi silti jatkaa sen suorittamista

Huomaa : Jos käytetään yksinkertaista väitettä tai yritä / kiinni-lohkoa, virheenkerääjän menetelmä ei ole mahdollista.

Näytekoodi

Jos haluat lisätietoja Error Collectorista, katso alla oleva koodiesimerkki, joka osoittaa, kuinka Error Collector -objekti luodaan ja lisää kaikki objektin virheet ongelman seuraamiseksi:

paketti guru99.junit;tuo org.junit.Rule;tuoda org.junit.Test;tuo org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Rulepublic ErrorCollector collector = uusi ErrorCollector ();@Testatapublic void example () {collector.addError (uusi heitettävä ("Ensimmäisellä rivillä on virhe"));collector.addError (uusi heitettävä ("Toisella rivillä on virhe"));collector.checkThat (getResults (),ei (sisältääString ("tässä on virhe")));// kaikki koodirivit suoritetaan ja lopussa yhdistetty vikaolla kirjautunut sisään.}}

Mikä on @Rule jUnitissa?

JUnit tarjoaa erityistyyppistä testien, testitapausten tai testipakettien käsittelyä @rule -merkinnällä . @Rule-toiminnolla voit helposti lisätä tai määrittää testin toiminnan uudelleen.

JUnit API tarjoaa useita sisäänrakennettuja sääntöjä, joita testaaja voi käyttää, tai jopa sinä voit kirjoittaa oman sääntömme.

Katso alla oleva koodirivi, joka näyttää, miten @rule-merkintää käytetään yhdessä Error Collectorin kanssa:

@Rulepublic ErrorCollector collector = uusi ErrorCollector ();

Esimerkki ErrorCollectorin käytöstä

Ymmärrämme virheenkerääjän luomalla luokan ja säännön kaikkien virheiden keräämiseksi. Lisää kaikki virheet addError (heitettävä) -toiminnon avulla tähän.

Katso alla oleva koodi, joka yksinkertaisesti luo säännön, joka ei ole muuta kuin "Error Collector -objektin" luominen. Tätä käytetään edelleen lisäämään kaikki virheet ongelman ilmoittamiseksi lopussa:

ErrorCollectorExample.java

paketti guru99.junit;tuo org.junit.Assert;tuo org.junit.Rule;tuoda org.junit.Test;tuo org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Rulepublic ErrorCollector collector = uusi ErrorCollector ();@Testatapublic void example () {collector.addError (uusi heitettävä ("Ensimmäisellä rivillä on virhe"));collector.addError (uusi heitettävä ("Toisella rivillä on virhe"));System.out.println ("Hei");yrittää {Assert.assertTrue ("A" == "B");} saalis (heitettävä t) {keräilijä.addError (t);}System.out.println ("Maailma !!!!");}}

TestRunner.java

Lisätään yllä oleva testiluokka testijuoksijaan ja suoritetaan se keräämään kaikki virheet. Katso alla oleva koodi:

paketti guru99.junit;tuo org.junit.runner.JUnitCore;tuo org.junit.runner.Result;tuo org.junit.runner.notification.Failure;julkinen luokka TestRunner {public staattinen void main (String [] argumentoi) {Tulos = JUnitCore.runClasses (ErrorCollectorExample.class);for (epäonnistumisvirhe: tulos.getFailures ()) {System.out.println (vika.String ());}System.out.println ("Tulos ==" + tulos.Onnistui ());}}

Tuotos:

Katso vikailmoitus, joka seuraa kaikki virheet yhdessä paikassa:

JUnit ErrorCollectorin edut

Voit käyttää JUnit-väitettä toiminnalliseen tai graafisen käyttöliittymän tarkistamiseen esim

  1. assertEquals (String-viesti, odotettavissa oleva objekti, todellinen objekti), jotka vertaavat, että kaksi objektia ovat yhtä suuret.
  2. Samoin assertTrue (Boolen ehto) väittää, että ehto on totta.

Vahvistuksen avulla validointitesti on helppoa. Mutta yksi tärkeä asia on, että testin suorittaminen loppuu, vaikka yksi väite epäonnistuu.

Testien jatkuvuus ja palautusten käsittely ovat ratkaisevan tärkeitä automatisoinnin onnistumisen testaamiseksi. Virheenkerääjä on paras tapa käsitellä tällaisia ​​tilanteita.

Yhteenveto :

  • Junit-virheenkerääjä sallii testin jatkamisen myös ensimmäisen ongelman löytämisen ja testin epäonnistumisen jälkeen
  • Virheenkerääjä kerää kaikki virheobjektit ja raportoi vain testin suorituksen
  • Kaikkien virheiden lisäämisen virheenkerääjään etuna on, että voit tarkistaa kaikki virheet kerralla
  • Virheenkerääjä yksinkertaisesti lisää virheitä käyttämällä menetelmää addError (heitettävä virhe), jonka tarjoaa ErrorCollector.java.