JUnit Förväntat undantagstest: @Test(förväntat)
JUnit ger möjlighet att spåra undantaget och även kontrollera om koden ger förväntat undantag eller inte.
Junit4 ger ett enkelt och läsbart sätt för undantagstestning som du kan använda
- Valfri parameter (förväntad) för @testkommentar och
- För att spåra informationen kan ”fail()” användas
Medan Testning undantag måste du se till att undantagsklassen du tillhandahåller i den valfria parametern @testkommentar är samma. Detta beror på att du förväntar dig ett undantag från den metod du är Enhetstestning, annars vår JUnit testet skulle misslyckas.
Exempel@Test(expected=IllegalArgumentException.class)
Genom att använda parametern "expected" kan du ange vilket undantagsnamn vårt test kan ge. I ovanstående exempel använder du "IllegalArgumentException” som kommer att kastas av testet om en utvecklare använder ett argument som inte är tillåtet.
Exempel med @test(expected)
Låt oss förstå undantagstestning genom att skapa en Java klass med en metod som ger ett undantag. Du kommer att hantera det och testa det i en testklass. Överväga JUnitMessage.java har en metod som helt enkelt gör en matematisk operation baserad på input som mottas av användaren. Om något olagligt argument skulle matas in, kommer det att kasta "ArithmeticException". Se nedan:
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; } }
Kodförklaring:
- Kodrad 7: Skapa en parametriserad konstruktor med fältinitiering.
- Kodrad 11-14: Skapa en metod för matematisk operation.
- Kodrad 18: Skapar en annan metod för att skriva ut ett meddelande.
- Kodrad 20: Skapa en ny sträng för att skriva ut ett meddelande.
- Kodrad 21: Skriver ut nytt meddelande skapat i rad 20.
Låt oss skapa en testklass för ovanstående javaklass för att verifiera undantag.
Se nedan testklass till enhetstestundantag (ArithmeticException här) som kastar från ovan javaklass:
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()); } }
Kodförklaring:
- Kodrad 13: Använder @Test-anteckning för att skapa vårt test. När du kör ovanstående klassmetoder kommer den att anropa en matematisk operation. Här förväntas aritmetiskt undantag, så du listar det som en parameter i @Test.
- Kodrad 17: Anropar printMessage() JUnitMessage.java
- Kodrad 18: Skapar en annan metod för att skriva ut HI-meddelande.
Om du kör den här testklassen exekveras testmetoden med varje definierad parameter. I exemplet ovan exekveras testmetoden fem gånger.
Låt oss köra det och verifiera resultatet. Se nedan testlöparklassen att utföra JunitTestExample.java
Produktion:
Här är utgången som visar framgångsrikt test utan felspår enligt nedan:
Sammanfattning
- Undantagstestning är en specialfunktion som introduceras i JUnit4. I den här handledningen har du lärt dig hur du testar undantag i JUnit använder @test(undantaget)
- Junit ger möjlighet att spåra undantaget och även kontrollera om koden ger undantag eller inte
- För undantagstestning kan du använda
- Valfri parameter (förväntad) för @testkommentar och
- För att spåra informationen kan ”fail()” användas