JUnit ErrorCollector @Rule s príkladom

Obsah:

Anonim

V normálnom scenári, kedykoľvek zistíte akúkoľvek chybu počas vykonávania testu, test by ste zastavili, opravili a znova spustili.

JUnit má ale trochu iný prístup. Pomocou zberača chýb JUnit môžete pokračovať v uskutočňovaní testu aj po nájdení problému alebo zlyhaní testu. Zberač chýb zhromažďuje všetky chybové objekty a oznamuje ich iba raz po ukončení vykonávania testu.

V tomto návode sa naučíte

  • Čo je zberač chýb v JUnit?
  • Čo je @Rule v jUnit?
  • Príklad použitia ErrorCollector
  • Výhody JUnit ErrorCollector

Prečo používať Error Collector?

Počas písania testovacieho skriptu chcete vykonať všetky testy, aj keď niektorý riadok kódu zlyhá z dôvodu zlyhania siete, zlyhania tvrdenia alebo iného dôvodu. V tejto situácii môžete pokračovať v spúšťaní testovacieho skriptu pomocou špeciálnej funkcie poskytovanej JUnit známej ako „zberač chýb“.

Na tento účel JUnit používa anotáciu @Rule, ktorá sa používa na vytvorenie objektu zberača chýb. Po vytvorení objektu na zhromažďovanie chýb môžete všetky chyby do objektu ľahko pridať pomocou metódy addError (chyba Throwable). Ako viete, táto Throwable je v triede Java super triedou tried výnimiek a chýb . Keď pridáte chyby týmto spôsobom, tieto chyby sa zapíšu do výsledku testu JUnit.

Výhodou pridania všetkých chýb do zberača chýb je, že môžete skontrolovať všetky chyby naraz. Aj keď skript zlyhá uprostred, môže pokračovať v jeho vykonávaní

Poznámka : V prípade použitia jednoduchého bloku assert alebo try / catch nebude použitie metódy zberu chýb možné.

Ukážkový kód

Ak sa chcete dozvedieť viac o chybe Collector, pozrite si nižšie uvedený príklad kódu, ktorý ukazuje, ako vytvoriť objekt Error Collector a pridať všetky chyby v tomto objekte na sledovanie problému:

balíček guru99.junit;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;verejná trieda ErrorCollectorExample {@ Pravidloverejný kolektor ErrorCollector = nový ErrorCollector ();@Testpublic void example () {collector.addError (new Throwable ("V prvom riadku je chyba"));collector.addError (new Throwable ("V druhom riadku je chyba"));collector.checkThat (getResults (),nie (containsString ("tu je chyba")));// vykonajú sa všetky riadky kódu a na konci sa vykoná kombinovaná chybabyť prihlásený.}}

Čo je @Rule v jUnit?

JUnit poskytuje špeciálny spôsob spracovania testov, testovacieho prípadu alebo testovacej sady pomocou anotácie @rule . Pomocou nástroja @rule môžete ľahko pridať alebo predefinovať správanie testu.

Existuje niekoľko vstavaných pravidiel poskytovaných JUnit API, ktoré môže tester použiť, alebo dokonca môžete napísať naše vlastné pravidlo.

Nižšie nájdete riadok kódu, ktorý ukazuje, ako používať anotáciu @rule spolu s chybou Collector:

@ Pravidloverejný kolektor ErrorCollector = nový ErrorCollector ();

Príklad použitia ErrorCollector

Aby sme porozumeli zberaču chýb, vytvorme triedu a pravidlo na zhromažďovanie všetkých chýb. Všetky chyby pridáte pomocou addError (hádzateľnej) sem.

Nižšie uvádzame kód, ktorý jednoducho vytvorí pravidlo, ktoré nie je ničím iným, ako vytvorením objektu „Error Collector“. Ktorá sa ďalej používa na pridanie všetkých chýb s cieľom nahlásiť problém na konci:

ErrorCollectorExample.java

balíček guru99.junit;import org.junit.Assert;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;verejná trieda ErrorCollectorExample {@ Pravidloverejný kolektor ErrorCollector = nový ErrorCollector ();@Testpublic void example () {collector.addError (new Throwable ("V prvom riadku je chyba"));collector.addError (new Throwable ("V druhom riadku je chyba"));System.out.println ("ahoj");skúsiť {Assert.assertTrue ("A" == "B");} chytiť (hoditeľné t) {collector.addError (t);}System.out.println ("Svet !!!!");}}

TestRunner.java

Pridajme vyššie uvedenú testovaciu triedu do testovacieho bežca a vykonajme ju, aby zhromaždila všetky chyby. Nižšie uvedený kód:

balíček guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;verejná trieda TestRunner {public static void main (String [] args) {Výsledok = JUnitCore.runClasses (ErrorCollectorExample.class);pre (Zlyhanie zlyhania: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Výsledok ==" + result.wasSuccessful ());}}

Výkon:

Pozrite si stopu zlyhania, ktorá sleduje všetky chyby na jednom mieste:

Výhody JUnit ErrorCollector

Môžete použiť tvrdenie JUnit na funkčné overenie alebo overenie GUI, napr

  1. assertEquals (reťazcová správa, očakávaný objekt, skutočný objekt), ktoré porovnávajú, že dva objekty sú si rovné.
  2. Podobne assertTrue (logická podmienka) tvrdí, že podmienka je pravdivá.

Pomocou tvrdenia je overovací test ľahký. Jedným z hlavných problémov však je, že vykonávanie testu sa zastaví, aj keď zlyhá jediné tvrdenie.

Kontinuita testu a obnova sú rozhodujúce pre úspech automatizácie testu. Zberač chýb je najlepší spôsob riešenia tohto druhu scenárov.

Zhrnutie :

  • Zberač chýb Junit umožňuje pokračovať v teste aj po nájdení prvého problému a po jeho zlyhaní
  • Zberač chýb zhromažďuje všetky chybové objekty a nahlasuje ich, koniec koncov, vykonanie testu znova
  • Výhodou pridania všetkých chýb do zberača chýb je, že môžete skontrolovať všetky chyby naraz
  • Zberač chýb jednoducho pridáva chyby pomocou metódy addError (throwable err), ktorú poskytuje ErrorCollector.java.