U normalnom scenariju, kad god prepoznate bilo kakvu pogrešku tijekom izvođenja testa, zaustavili biste test, popravili pogrešku i ponovno pokrenuli test.
Ali JUnit ima malo drugačiji pristup. S JUnit sakupljačem pogrešaka i dalje možete nastaviti s izvršavanjem testa čak i nakon što se pronađe problem ili test ne uspije. Sakupljač pogrešaka prikuplja sve objekte pogrešaka i prijavljuje ih samo jednom nakon završetka testa.
U ovom vodiču naučit ćete-
- Što je sakupljač pogrešaka u JUnit-u?
- Što je @Rule u jUnit?
- Primjer korištenja ErrorCollector
- Prednosti JUnit ErrorCollector
Zašto koristiti Error Collector?
Dok pišete testnu skriptu, želite izvršiti sve testove, čak i ako bilo koji redak koda ne uspije zbog mrežne greške, neuspjeha tvrdnje ili bilo kojeg drugog razloga. U toj situaciji i dalje možete nastaviti izvršavati testnu skriptu pomoću posebne značajke koju pruža JUnit poznate kao "sakupljač pogrešaka".
Za to JUnit koristi bilješku @Rule koja se koristi za stvaranje objekta sakupljača pogrešaka. Jednom kada se kreira objekt za sakupljač pogrešaka, možete lako dodati sve pogreške u objekt pomoću metode addError (pogreška koja se može baciti). Kao što znate, Throwable je super klasa klase izuzetaka i pogrešaka na Javi. Kad na ovaj način dodate pogreške, te će se pogreške prijaviti u rezultat testa JUnit.
Prednost dodavanja svih pogrešaka u kolektoru pogrešaka je u tome što možete sve greške provjeriti odjednom. Također, ako skripta ne uspije u sredini, i dalje je može nastaviti izvršavati
Napomena : U slučaju korištenja jednostavnog bloka za potvrdu ili pokušaj / ulov, metoda prikupljanja pogrešaka neće biti moguća.
Uzorak koda
Da biste razumjeli više o kolektoru pogrešaka, pogledajte donji primjer koda koji pokazuje kako stvoriti objekt kolektora pogrešaka i dodati sve pogreške u tom objektu za praćenje problema:
paket guru99.junit;import org.junit.Rule;uvoz org.junit.Test;uvoz org.junit.rules.ErrorCollector;javna klasa ErrorCollectorExample {@Pravilojavni kolektor pogrešaka = novi ErrorCollector ();@Testprimjer javne praznine () {collector.addError (new Throwable ("Postoji pogreška u prvom retku"));collector.addError (new Throwable ("Postoji pogreška u drugom retku"));collector.checkThat (getResults (),not (containsString ("ovdje je pogreška")));// svi će se redovi koda izvršiti i na kraju će se kombinirani neuspjehbiti prijavljeni.}}
Što je @Rule u jUnit?
JUnit pruža posebnu vrstu rukovanja testovima, test slučajem ili test paketom pomoću bilješke @rule . Korištenjem @rule možete jednostavno dodati ili redefinirati ponašanje testa.
Postoji nekoliko ugrađenih pravila koja pruža JUnit API koje tester može koristiti, ili čak možete napisati vlastito pravilo.
Pogledajte donji redak koda, koji pokazuje kako koristiti bilješku @rule zajedno s Error Collector:
@Pravilojavni kolektor pogrešaka = novi ErrorCollector ();
Primjer korištenja ErrorCollector
Da bismo razumjeli sakupljač pogrešaka, stvorimo klasu i pravilo za prikupljanje svih pogrešaka. Ovdje ćete dodati sve pogreške pomoću addError (bacanje).
Pogledajte donji kod koji jednostavno stvara pravilo koje nije ništa drugo nego stvaranje "Objekta kolektora pogrešaka". Koji se dalje koristi za dodavanje svih pogrešaka kako bi se problem prijavio na kraju:
ErrorCollectorExample.java
paket guru99.junit;uvoz org.junit.Assert;import org.junit.Rule;uvoz org.junit.Test;uvoz org.junit.rules.ErrorCollector;javna klasa ErrorCollectorExample {@Pravilojavni kolektor pogrešaka = novi ErrorCollector ();@Testprimjer javne praznine () {collector.addError (new Throwable ("Postoji pogreška u prvom retku"));collector.addError (new Throwable ("Postoji pogreška u drugom retku"));System.out.println ("Pozdrav");probaj {Assert.assertTrue ("A" == "B");} uhvatiti (bacanje t) {collector.addError (t);}System.out.println ("Svijet !!!!");}}
TestRunner.java
Dodajmo gornju klasu testa u test trkač i izvršimo je da prikupimo sve pogreške. Pogledajte donji kod:
paket guru99.junit;import org.junit.runner.JUnitCore;uvoz org.junit.runner.Result;import org.junit.runner.notification.Failure;javna klasa TestRunner {javna statička void glavna (String [] args) {Rezultat rezultata = JUnitCore.runClasses (ErrorCollectorExample.class);for (Neuspjeh neuspjeha: result.getFailures ()) {System.out.println (neuspjeh.toString ());}System.out.println ("Rezultat ==" + rezultat.bio je uspješan ());}}
Izlaz:
Pogledajte trag kvara koji prati sve pogreške na jednom mjestu:
Prednosti JUnit ErrorCollector
Možete koristiti tvrdnju JUnit za funkcionalnu ili GUI provjeru, npr
- assertEquals (poruka niza, objekt se očekuje, objekt stvarno) koji uspoređuju da su dva objekta jednaka.
- Slično tome, assertTrue (logički uvjet) tvrdi da je uvjet istinit.
Koristeći tvrdnju, test provjere valjanosti postaje jednostavan. Ali jedno je glavno pitanje da će se izvršavanje testa zaustaviti čak i ako pojedina tvrdnja ne uspije.
Kontinuitet ispitivanja i rukovanje oporavkom presudni su za uspjeh automatizacije. Prikupljač pogrešaka najbolji je način za rješavanje takvih scenarija.
Sažetak :
- Junit sakupljač pogrešaka omogućuje nastavak testa i nakon pronalaska prvog izdanja, a test na kraju ne uspije
- Sakupljač pogrešaka prikuplja sve objekte pogrešaka i izvještava samo o njemu, nakon svega završetka testa
- Prednost dodavanja svih pogrešaka u kolektoru pogrešaka je u tome što možete sve greške provjeriti odjednom
- Sakupljač pogrešaka jednostavno dodaje pogreške pomoću metode addError (greška koja se može baciti) koju pruža ErrorCollector.java.