JUnit giver mulighed for at spore undtagelsen og også kontrollere, om koden kaster forventet undtagelse eller ej.
Junit4 giver en nem og læsbar måde til undtagelsestest, du kan bruge
- Valgfri parameter (forventet) for @test-kommentar og
- For at spore oplysningerne kan "fail ()" bruges
Under testundtagelse skal du sikre dig, at den undtagelsesklasse, du giver i den valgfri parameter for @test-kommentar, er den samme. Dette skyldes, at du forventer en undtagelse fra den metode, du er enhedstest, ellers mislykkedes vores JUnit-test.
Eksempel @ Test (forventet = IllegalArgumentException.class)
Ved at bruge parameteren "forventet" kan du angive det undtagelsesnavn, som vores test muligvis kaster. I eksemplet ovenfor bruger du " IllegalArgumentException", som kastes af testen, hvis en udvikler bruger et argument, som ikke er tilladt.
Eksempel ved brug af @test (forventet)
Lad os forstå undtagelsestest ved at oprette en Java-klasse med en metode, der kaster en undtagelse. Du vil håndtere det og teste det i en testklasse. Overvej JUnitMessage.java at have en metode, der simpelthen udfører en matematisk operation baseret på input modtaget af brugeren. Hvis der blev indtastet noget ulovligt argument, vil det kaste "ArithmeticException " . Se nedenunder:
pakke guru99.junit;offentlig klasse JUnitMessage {privat streng besked;offentlig JUnitMessage (streng besked) {denne besked = besked;}offentlig ugyldig printMessage () {System.out.println (besked);int divide = 1/0;}offentlig streng printHiMessage () {message = "Hej!" + besked;System.out.println (besked);returnere besked;}}
Kode Forklaring:
- Kodelinje 7: Oprettelse af en parametreret konstruktør med feltinitialisering.
- Kodelinje 11-14: Oprettelse af en metode til matematisk operation.
- Kodelinje 18: Opretter en anden metode til at udskrive en besked.
- Kodelinje 20: Oprettelse af en ny streng til udskrivning af en besked.
- Kodelinje 21: Udskrivning af ny besked oprettet i linje 20.
Lad os oprette en testklasse til ovenstående java-klasse for at bekræfte undtagelse.
Se nedenstående testklasse til enhedstestundtagelse (ArithmeticException her), der kaster ovenfra java-klasse:
AirthematicTest.java
pakke guru99.junit;importer statisk org.junit.Assert.assertEquals;import org.junit.Test;offentlig klasse AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = ny JUnitMessage (besked);@Test (forventet = ArithmeticException.class)offentlig ugyldig testJUnitMessage () {System.out.println ("Junit-meddelelse udskrives");junitMessage.printMessage ();}@Prøveoffentlig ugyldig testJUnitHiMessage () {message = "Hej!" + besked;System.out.println ("Junit-meddelelse udskrives");assertEquals (besked, junitMessage.printMessage ());}}
Kode Forklaring:
- Kodelinje 13: Brug @Test-kommentar til at oprette vores test. Når du udfører ovennævnte klassemetode, påberåber den en matematisk operation. Her forventes aritmetisk undtagelse, så du angiver det som en parameter i @Test.
- Kodelinje 17: Påkalder printMessage () JUnitMessage.java
- Kodelinje 18: Opretter en anden metode til at udskrive HI-besked.
Hvis du udfører denne testklasse, udføres testmetoden med hver defineret parameter. I ovenstående eksempel udføres testmetoden fem gange.
Lad os udføre det og kontrollere resultatet. Se nedenunder testløberklassen for at udføre JunitTestExample.java
Produktion:
Her er output, der viser vellykket test uden fejlsporing som angivet nedenfor:
Resumé:
- Undtagelsestest er en speciel funktion introduceret i JUnit4. I denne vejledning har du lært, hvordan du tester undtagelse i JUnit ved hjælp af @test (undtagen)
- Junit giver mulighed for at spore undtagelsen og også kontrollere, om koden kaster undtagelse eller ej
- Til undtagelsestest kan du bruge
- Valgfri parameter (forventet) for @test-kommentar og
- For at spore oplysningerne kan "fail ()" bruges