JUnit ErrorCollector @Rule s primerom

Kazalo:

Anonim

V običajnem primeru bi vsakič, ko med izvajanjem preizkusa prepoznate kakršno koli napako, zaustavili test, odpravili napako in znova zagnali test.

Toda JUnit ima nekoliko drugačen pristop. Z zbiralnikom napak JUnit lahko še vedno nadaljujete s preizkusom, tudi ko najdete težavo ali preizkus ne uspe. Zbiralec napak zbere vse predmete napak in o njih poroča le enkrat po zaključku preizkusa.

V tej vadnici boste izvedeli-

  • Kaj je zbiralnik napak v JUnit?
  • Kaj je @Rule v jUnit?
  • Primer uporabe ErrorCollector
  • Prednosti JUnit ErrorCollector

Zakaj uporabljati zbiralec napak?

Med pisanjem preskusnega skripta želite izvesti vse teste, tudi če katera koli vrstica kode odpove zaradi okvare omrežja, napake trditve ali katerega koli drugega razloga. V tem primeru lahko še naprej izvajate testni skript s posebno funkcijo, ki jo ponuja JUnit, znano kot "zbiralec napak".

Za to JUnit uporablja pripis @Rule, ki se uporablja za ustvarjanje predmeta zbiralca napak. Ko je objekt za zbiralnik napak ustvarjen, lahko vse napake enostavno dodate v objekt z uporabo metode addError (napaka , ki jo je mogoče vrniti). Kot veste, je Throwable v Javi super razred izjem in napak . Ko na ta način dodate napake, bodo te napake zabeležene v rezultatu preskusa JUnit.

Prednost dodajanja vseh napak v zbiralnik napak je, da lahko hkrati preverite vse napake. Tudi če skript na sredini ne uspe, ga lahko še naprej izvaja

Opomba : V primeru uporabe preprostega bloka za uveljavljanje ali poskus / ulov uporaba metode zbiranja napak ne bo mogoča.

Vzorčna koda

Če želite razumeti več o zbiralniku napak, glejte spodnji primer kode, ki prikazuje, kako ustvariti predmet zbiralca napak in dodati vse napake v tem objektu za sledenje težavi:

paket guru99.junit;import org.junit.Rule;uvoz org.junit.Test;import org.junit.rules.ErrorCollector;javni razred ErrorCollectorExample {@ Pravilojavni zbiralec ErrorCollector = nov ErrorCollector ();@Testprimer javne praznine () {collector.addError (novo Throwable ("V prvi vrstici je napaka"));collector.addError (novo Throwable ("V drugi vrstici je napaka"));collector.checkThat (getResults (),not (containsString ("tukaj je napaka")));// izvršile se bodo vse vrstice kode in na koncu se bo zgodila kombinirana napakabiti prijavljeni.}}

Kaj je @Rule v jUnit?

JUnit zagotavlja posebno vrsto obdelave testov, testnega primera ali testne zbirke z uporabo oznake @rule . Z @rule lahko preprosto dodate ali ponovno določite vedenje testa.

JUnit API ponuja več vgrajenih pravil, ki jih preskuševalec lahko uporabi, ali celo sami lahko napišete svoje pravilo.

Glejte spodnjo vrstico kode, ki prikazuje, kako uporabljati pripis @rule skupaj z zbiralnikom napak:

@ Pravilojavni zbiralec ErrorCollector = nov ErrorCollector ();

Primer uporabe ErrorCollector

Da bi razumeli zbiralec napak, ustvarimo razred in pravilo za zbiranje vseh napak. Vse napake boste tukaj dodali z uporabo addError (metanje).

Glejte spodnjo kodo, ki preprosto ustvari pravilo, ki ni nič drugega kot ustvarjanje "predmeta zbiralca napak." Ki se nadalje uporablja za dodajanje vseh napak, da se težava poroča na koncu:

ErrorCollectorExample.java

paket guru99.junit;import org.junit.Assert;import org.junit.Rule;uvoz org.junit.Test;import org.junit.rules.ErrorCollector;javni razred ErrorCollectorExample {@ Pravilojavni zbiralec ErrorCollector = nov ErrorCollector ();@Testprimer javne praznine () {collector.addError (novo Throwable ("V prvi vrstici je napaka"));collector.addError (novo Throwable ("V drugi vrstici je napaka"));System.out.println ("Pozdravljeni");poskusite {Assert.assertTrue ("A" == "B");} ulov (Dobavljivo t) {collector.addError (t);}System.out.println ("Svet !!!!");}}

TestRunner.java

Dodajmo zgornji testni razred v testni tekač in ga izvedimo, da zberemo vse napake. Glej spodnjo kodo:

paket guru99.junit;import org.junit.runner.JUnitCore;uvoz org.junit.runner.Result;import org.junit.runner.notification.Failure;javni razred TestRunner {public static void main (String [] args) {Rezultat rezultata = JUnitCore.runClasses (ErrorCollectorExample.class);for (Napaka neuspeha: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Rezultat ==" + result.wasSuccessful ());}}

Izhod:

Oglejte si sled napake, ki na enem mestu zasledi vse napake:

Prednosti JUnit ErrorCollector

Trditev JUnit lahko uporabite za preverjanje funkcionalnosti ali GUI, npr

  1. assertEquals (sporočilo v nizu, pričakovani objekt, dejanski objekt), ki primerja, da sta dva predmeta enaka.
  2. Podobno assertTrue (logični pogoj) trdi, da je pogoj resničen.

Z uporabo trditve postane preizkus validacije enostaven. Toda eno največjih vprašanj je, da se bo izvajanje preizkusa ustavilo, tudi če ena trditev ne uspe.

Kontinuiteta preskusov in ravnanje z obnovitvami sta ključnega pomena za uspeh avtomatizacije. Zbiralnik napak je najboljši način za obvladovanje tovrstnih scenarijev.

Povzetek :

  • Zbiralnik napak Junit omogoča nadaljevanje preskusa tudi po tem, ko je odkrita prva izdaja in na koncu test ne uspe
  • Zbiralec napak zbere vse predmete napak in o njih poroča le navsezadnje, ko je izvajanje preizkusa končano
  • Prednost dodajanja vseh napak v zbiralnik napak je, da lahko vse napake preverite hkrati
  • Zbiralec napak preprosto doda napake z uporabo metode addError (napaka, ki jo je mogoče vrniti), ki jo zagotavlja ErrorCollector.java.