JUnit tillhandahåller möjligheten att spåra undantaget och också att 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 @test-kommentar och
- För att spåra informationen kan "fail ()" användas
Medan du testar undantag måste du se till att undantagsklassen du tillhandahåller i den valfria parametern för @testanteckningen är densamma. Detta beror på att du förväntar dig ett undantag från metoden du testar enhet, annars skulle vårt JUnit-test misslyckas.
Exempel @ Test (förväntat = IllegalArgumentException.class)
Genom att använda "förväntad" -parameter kan du ange undantagsnamnet som vårt test kan kasta. I exemplet ovan använder du " IllegalArgumentException" som kastas av testet om en utvecklare använder ett argument som inte är tillåtet.
Exempel med @test (förväntat)
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. Tänk på att JUnitMessage.java har en metod som helt enkelt gör en matematisk operation baserad på ingång som mottagits av användaren. Om något olagligt argument skulle läggas in, kommer det att kasta "ArithmeticException " . Se nedan:
paket guru99.junit;offentlig klass JUnitMessage {privat strängmeddelande;public JUnitMessage (Strängmeddelande) {this.message = meddelande;}public void printMessage () {System.out.println (meddelande);int divide = 1/0;}public String printHiMessage () {meddelande = "Hej!" + meddelande;System.out.println (meddelande);returmeddelande;}}
Kodförklaring:
- Kodrad 7: Skapa en parametrerad konstruktör med fältinitiering.
- Kodrad 11-14: Skapa en metod för matematisk operation.
- Kodrad 18: Skapa 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: Skriva ut nytt meddelande skapat i rad 20.
Låt oss skapa en testklass för ovanstående Java-klass för att verifiera undantag.
Se nedan testklass till enhetstestundantag (ArithmeticException här) som kastar från ovan Java-klass:
AirthematicTest.java
paket guru99.junit;importera statisk org.junit.Assert.assertEquals;importera org.junit.Test;offentlig klass AirthematicTest {public Strängmeddelande = "Saurabh";JUnitMessage junitMessage = ny JUnitMessage (meddelande);@Test (förväntat = ArithmeticException.class)offentligt ogiltigt testJUnitMessage () {System.out.println ("Junit-meddelandet skrivs ut");junitMessage.printMessage ();}@Testaoffentligt ogiltigt testJUnitHiMessage () {meddelande = "Hej!" + meddelande;System.out.println ("Junit-meddelandet skrivs ut");assertEquals (meddelande, junitMessage.printMessage ());}}
Kodförklaring:
- Kodrad 13: Använda @Test-kommentar för att skapa vårt test. När du utför ovanstående klassmetod kommer den att åberopa en matematisk operation. Här förväntas aritmetiska undantag, så du listar det som en parameter i @Test.
- Kodrad 17: Anropa printMessage () JUnitMessage.java
- Kodrad 18: Skapa en annan metod för att skriva ut HI-meddelande.
Om du utför denna testklass körs testmetoden med varje definierad parameter. I exemplet ovan utförs testmetoden fem gånger.
Låt oss utföra det och verifiera resultatet. Se nedan testlöparklassen för att utföra JunitTestExample.java
Produktion:
Här är utgången som visar framgångsrikt test utan felsökning enligt nedan:
Sammanfattning:
- Undantagstestning är en speciell funktion som introduceras i JUnit4. I denna handledning har du lärt dig hur man testar undantag i JUnit med @test (undantaget)
- Junit tillhandahåller möjligheten att spåra undantaget och också för att kontrollera om koden kastar undantag eller inte
- För undantagstestning kan du använda
- Valfri parameter (förväntad) för @test-kommentar och
- För att spåra informationen kan "fail ()" användas