JUnit ErrorCollector @Rule med eksempel

Indholdsfortegnelse:

Anonim

I et normalt scenarie, når du identificerer en fejl under testudførelsen, stopper du testen, retter fejlen og kører testen igen.

Men JUnit har en lidt anden tilgang. Med JUnit-fejlsamler kan du stadig fortsætte med testudførelsen, selv efter at et problem er fundet, eller testen mislykkes. Fejlopsamler samler alle fejlobjekter og rapporterer det kun en gang, efter at testudførelsen er slut.

I denne vejledning lærer du-

  • Hvad er fejlopsamler i JUnit?
  • Hvad er @Rule i jUnit?
  • Eksempel ved brug af ErrorCollector
  • Fordele ved JUnit ErrorCollector

Hvorfor bruge Error Collector?

Mens du skriver et test script, vil du udføre alle testene, selvom en kodelinje mislykkes på grund af netværksfejl, påstandssvigt eller anden grund. I den situation kan du stadig fortsætte med at udføre test script ved hjælp af en speciel funktion leveret af JUnit kendt som "fejlopsamler."

Til dette bruger JUnit @Rule-kommentar, som bruges til at oprette et objekt med fejlopsamler . Når objektet til fejlopsamler er oprettet, kan du nemt tilføje alle fejlene i objektet ved hjælp af metoden addError (fejl, der kan kastes). Som du ved, at Throwable er det super klasse af Exception og Error klasse i Java. Når du tilføjer fejl på denne måde, logges disse fejl i JUnit-testresultatet.

Fordelen ved at tilføje alle fejl i en fejlsamler er, at du kan kontrollere alle fejlene på én gang. Også, hvis scriptet mislykkes i midten, kan det stadig fortsætte med at udføre det

Bemærk : I tilfælde af brug af enkel assert eller try / catch-blok er det ikke muligt at bruge fejlopsamlingsmetoden.

Prøvekode

For at forstå mere om Error Collector, se nedenstående kodeeksempel, der demonstrerer, hvordan du opretter et Error Collector-objekt og tilføjer alle fejlene i det objekt for at spore problemet:

pakke guru99.junit;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Herskeoffentlig ErrorCollector-samler = ny ErrorCollector ();@Prøveoffentligt ugyldigt eksempel () {collector.addError (ny Throwable ("Der er en fejl i første linje"));collector.addError (ny Throwable ("Der er en fejl i anden linje"));collector.checkThat (getResults (),ikke (indeholderString ("her er en fejl")));// alle kodelinjer udføres, og i slutningen vil en kombineret fejlvære logget ind.}}

Hvad er @Rule i jUnit?

JUnit leverer en speciel form for håndtering af tests, Test Case eller test suite ved hjælp af @rule-kommentar . Ved hjælp af @rule kan du nemt tilføje eller omdefinere testens opførsel.

Der er flere indbyggede regler leveret af JUnit API, som en tester kan bruge, eller endda kan du skrive vores egen regel.

Se nedenstående kodelinje, der viser, hvordan du bruger @rule-kommentar sammen med Error Collector:

@Herskeoffentlig ErrorCollector-samler = ny ErrorCollector ();

Eksempel ved brug af ErrorCollector

For at forstå fejlopsamleren, lad os oprette en klasse og en regel til at indsamle alle fejlene. Du tilføjer alle fejlene ved hjælp af addError (kastbar) her.

Se nedenstående kode, der simpelthen opretter en regel, der ikke er andet end at oprette "Error Collector-objekt." Hvilket bruges yderligere til at tilføje alle fejlene for at rapportere problemet i slutningen:

ErrorCollectorExample.java

pakke guru99.junit;import org.junit.Assert;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ErrorCollector;public class ErrorCollectorExample {@Herskeoffentlig ErrorCollector-samler = ny ErrorCollector ();@Prøveoffentligt ugyldigt eksempel () {collector.addError (ny Throwable ("Der er en fejl i første linje"));collector.addError (ny Throwable ("Der er en fejl i anden linje"));System.out.println ("Hej");prøve {Assert.assertTrue ("A" == "B");} fangst (kastbar t) {collector.addError (t);}System.out.println ("Verden !!!!");}}

TestRunner.java

Lad os tilføje ovenstående testklasse i en testløber og udføre den for at samle alle fejl. Se nedenstående kode:

pakke guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;offentlig klasse TestRunner {public static void main (String [] args) {Resultat resultat = JUnitCore.runClasses (ErrorCollectorExample.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultat ==" + result.wasSuccessful ());}}

Produktion:

Se fejlsporingen, der sporer alle fejlene ét sted:

Fordele ved JUnit ErrorCollector

Du kan bruge JUnit-påstand til funktionel eller GUI-validering, f.eks

  1. assertEquals (strengmeddelelse, objekt forventet, objekt faktisk), der sammenligner, at to objekter er lig.
  2. På samme måde hævder assertTrue (boolsk tilstand), at en betingelse er sand.

Ved hjælp af påstand bliver valideringstest let. Men et stort problem er, at testudførelsen stopper, selvom en enkelt påstand mislykkes.

Testkontinuitet og håndtering af opsving er afgørende for at teste automatiseringssucces. Error Collector er den bedste måde at håndtere sådanne slags scenarier på.

Resume :

  • Junit-fejlsamler tillader, at en test fortsætter, selv efter at det første problem er fundet, og testen mislykkes i slutningen
  • Fejlopsamler indsamler alle fejlobjekter og rapporterer kun, når alt kommer til alt, testkørslen er overstået
  • Fordelen ved at tilføje alle fejl i en fejlsamler er, at du kan kontrollere alle fejlene på én gang
  • Fejlopsamler tilføjer simpelthen fejl ved hjælp af metoden addError (kastbar fejl) leveret af ErrorCollector.java.