JUnit ErrorCollector @Rule s příkladem

Obsah:

Anonim

V normálním scénáři, kdykoli zjistíte jakoukoli chybu během provádění testu, zastavíte test, chybu opravíte a znovu spustíte test.

JUnit má ale trochu jiný přístup. S kolekcí chyb JUnit můžete pokračovat v provádění testu i po nalezení problému nebo selhání testu. Sběrač chyb shromažďuje všechny chybové objekty a hlásí je pouze jednou po skončení provádění testu.

V tomto výukovém programu se naučíte

  • Co je sběrač chyb v JUnit?
  • Co je @Rule v jUnit?
  • Příklad použití ErrorCollector
  • Výhody JUnit ErrorCollector

Proč používat Error Collector?

Při psaní testovacího skriptu chcete provést všechny testy, i když některý řádek kódu selže z důvodu selhání sítě, selhání tvrzení nebo z jiného důvodu. V této situaci můžete pokračovat ve spouštění testovacího skriptu pomocí speciální funkce poskytované JUnit, známé jako „sběrač chyb“.

K tomu JUnit používá anotaci @Rule, která se používá k vytvoření objektu sběrače chyb. Jakmile je objekt pro sběr chyb vytvořen, můžete do něj snadno přidat všechny chyby pomocí metody addError (chyba Throwable). Jak víte, že Throwable je super třída třídy výjimek a chyb v Javě. Když přidáte chyby tímto způsobem, budou tyto chyby zaznamenány do výsledku testu JUnit.

Výhodou přidání všech chyb do sběrače chyb je, že můžete všechny chyby ověřit najednou. Také pokud skript selže uprostřed, může pokračovat v jeho provádění

Poznámka : V případě použití jednoduchého bloku assert nebo try / catch nebude použití metody sběru chyb možné.

Ukázkový kód

Chcete-li se dozvědět více o Error Collector, podívejte se níže na příklad kódu, který ukazuje, jak vytvořit objekt Error Collector a přidat všechny chyby v tomto objektu ke sledování problému:

balíček guru99.junit;importovat org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;veřejná třída ErrorCollectorExample {@Pravidlopublic ErrorCollector collector = nový ErrorCollector ();@Testpublic void example () {collector.addError (new Throwable ("V prvním řádku je chyba"));collector.addError (new Throwable ("Na druhém řádku je chyba"));collector.checkThat (getResults (),not (containsString ("here is an error")));// provedou se všechny řádky kódu a na konci se provede kombinovaná chybabýt přihlášen.}}

Co je @Rule v jUnit?

JUnit poskytuje speciální druh zpracování testů, testovacího případu nebo testovací sady pomocí anotace @rule . Pomocí @rule můžete snadno přidat nebo předefinovat chování testu.

Existuje několik předdefinovaných pravidel poskytovaných JUnit API, které může tester použít, nebo dokonce můžete napsat naše vlastní pravidlo.

Podívejte se na níže uvedený řádek kódu, který ukazuje, jak používat anotaci @rule spolu s kolekcí chyb:

@Pravidlopublic ErrorCollector collector = nový ErrorCollector ();

Příklad použití ErrorCollector

Abychom pochopili sběrač chyb, vytvořme třídu a pravidlo pro shromažďování všech chyb. Zde přidáte všechny chyby pomocí addError (throwable).

Níže naleznete kód, který jednoduše vytvoří pravidlo, které není ničím jiným než vytvořením „objektu Error Collector“. Který se dále používá k přidání všech chyb za účelem nahlášení problému na konci:

ErrorCollectorExample.java

balíček guru99.junit;import org.junit.Assert;importovat org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;veřejná třída ErrorCollectorExample {@Pravidlopublic ErrorCollector collector = nový ErrorCollector ();@Testpublic void example () {collector.addError (new Throwable ("V prvním řádku je chyba"));collector.addError (new Throwable ("Na druhém řádku je chyba"));System.out.println ("Dobrý den");Snaž se {Assert.assertTrue ("A" == "B");} chytit (hoditelný t) {collector.addError (t);}System.out.println ("Svět !!!!");}}

TestRunner.java

Přidejme výše uvedenou testovací třídu do testovacího běžce a spusťte ji, abyste shromáždili všechny chyby. Viz níže kód:

balíček guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;veřejná třída TestRunner {public static void main (String [] args) {Výsledek = JUnitCore.runClasses (ErrorCollectorExample.class);pro (Selhání selhání: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Výstup:

Podívejte se na stopu selhání, která sleduje všechny chyby na jednom místě:

Výhody JUnit ErrorCollector

Můžete použít tvrzení JUnit pro funkční nebo GUI validaci, např

  1. assertEquals (String message, Object expect, Object actual), které porovnávají, že dva objekty jsou si rovny.
  2. Podobně assertTrue (logická podmínka) tvrdí, že podmínka je pravdivá.

Pomocí tvrzení je ověřovací test snadný. Jedním z hlavních problémů však je, že provádění testu se zastaví, i když selže jediné tvrzení.

Kontinuita testu a zpracování obnovy je zásadní pro úspěch automatizace testu. Sběrač chyb je nejlepší způsob, jak zvládnout takovéto scénáře.

Shrnutí :

  • Sběrač chyb Junit umožňuje pokračovat v testu i poté, co je nalezen první problém a test selže na konci
  • Sběrač chyb shromažďuje všechny chybové objekty a hlásí je, koneckonců i po provedení testu
  • Výhodou přidání všech chyb do sběrače chyb je, že můžete všechny chyby ověřit najednou
  • Sběrač chyb jednoduše přidává chyby pomocí metody addError (throwable err) poskytované ErrorCollector.java.