JUnit Forventet undtagelsestest: @Test(forventet)
JUnit giver mulighed for at spore undtagelsen og også til at kontrollere, om koden afgiver forventet undtagelse eller ej.
Junit4 giver en nem og læsbar måde til undtagelsestest, du kan bruge
- Valgfri parameter (forventet) for @test annotation og
- For at spore informationen kan "fail()" bruges
Mens Test undtagelse, skal du sikre dig den undtagelsesklasse, du angiver i den valgfrie parameter @testanmærkning er den samme. Dette skyldes, at du forventer en undtagelse fra den metode, du er Enhedstest, ellers vores JUnit test ville mislykkes.
Eksempel@Test(expected=IllegalArgumentException.class)
Ved at bruge parameteren "expected" kan du angive det undtagelsesnavn, som vores test kan give. I ovenstående eksempel bruger du "IllegalArgumentException” som vil blive kastet af testen, hvis en udvikler bruger et argument, som ikke er tilladt.
Eksempel med @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 har en metode, der blot udfører en matematisk operation baseret på input modtaget af brugeren. Hvis et ulovligt argument ville blive indtastet, vil det kaste "ArithmeticException". Se nedenfor:
package guru99.junit; public class JUnitMessage{ private String message; public JUnitMessage(String message) { this.message = message; } public void printMessage(){ System.out.println(message); int divide=1/0; } public String printHiMessage(){ message="Hi!" + message; System.out.println(message); return message; } }
Kodeforklaring:
- Kodelinje 7: Oprettelse af en parameteriseret konstruktør med feltinitialisering.
- Kodelinje 11-14: Oprettelse af en metode til matematisk operation.
- Kodelinje 18: Oprettelse af en anden metode til at udskrive en meddelelse.
- Kodelinje 20: Oprettelse af en ny streng for at udskrive en besked.
- Kodelinje 21: Udskriver ny besked oprettet i linje 20.
Lad os oprette en testklasse for ovenstående java-klasse for at bekræfte undtagelsen.
Se nedenfor test klasse til enhed test undtagelse (ArithmeticException her) kaster ovenfra java klasse:
AirthematicTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class AirthematicTest { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage(){ System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage(){ message="Hi!" + message; System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } }
Kodeforklaring:
- Kodelinje 13: Brug af @Test-annotation til at oprette vores test. Når du udfører ovenstående klasser metode, vil den påberåbe sig en matematisk operation. Her forventes aritmetisk undtagelse, så du angiver det som en parameter i @Test.
- Kodelinje 17: Påberåber printMessage() JUnitMessage.java
- Kodelinje 18: Oprettelse af en anden metode til at udskrive HI-meddelelse.
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 verificere resultatet. Se nedenfor testløberklassen, der skal udføres JunitTestExample.java
Output:
Her er outputtet, der viser vellykket test uden fejlspor som angivet nedenfor:
Resumé
- Undtagelsestest er en speciel funktion introduceret i JUnit4. I denne tutorial har du lært, hvordan du tester undtagelser i JUnit ved hjælp af @test(undtaget)
- Junit giver mulighed for at spore undtagelsen og også til at kontrollere, om koden afgiver undtagelse eller ej
- Til undtagelsestestning kan du bruge
- Valgfri parameter (forventet) for @test annotation og
- For at spore informationen kan "fail()" bruges