JUnit Verwachte uitzonderingstest: @Test(verwacht)

JUnit biedt de mogelijkheid om de uitzondering te traceren en ook om te controleren of de code de verwachte uitzondering genereert of niet.

Junit4 biedt een eenvoudige en leesbare manier voor uitzonderingstesten, u kunt

  • Optionele parameter (verwacht) van @test-annotatie en
  • Om de informatie te traceren kan “fail()” worden gebruikt

Terwijl Testen uitzondering, moet u ervoor zorgen dat de uitzonderingsklasse die u opgeeft in die optionele parameter van @testannotatie is hetzelfde. Dit komt omdat u een uitzondering verwacht op de manier waarop u werkt Testen van een eenheid, anders onze JUnit proef zou mislukken.

Voorbeeld@Test(verwacht=IllegalArgumentException.class)

Door de parameter “expected” te gebruiken, kunt u de uitzonderingsnaam opgeven die onze test kan opleveren. In het bovenstaande voorbeeld gebruikt u “Illegale ArgumentUitzondering” die door de test wordt gegenereerd als een ontwikkelaar een argument gebruikt dat niet is toegestaan.

Voorbeeld met @test(expected)

Laten we het testen van uitzonderingen begrijpen door een Java klasse met een methode die een uitzondering gooit. U zult het afhandelen en testen in een testklasse. Overweeg JUnitMessage.java heeft een methode die simpelweg een wiskundige bewerking uitvoert op basis van de invoer die de gebruiker heeft ontvangen. Als er een illegaal argument zou worden ingevoerd, zal het "ArithmeticException" gooien. Zie hieronder:

Voorbeeld met @Test

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;
}

}

Code Verklaring:

  • Coderegel 7: Een geparametriseerde constructor maken met veldinitialisatie.
  • Coderegel 11-14: Een methode voor wiskundige bewerkingen maken.
  • Coderegel 18: Een andere methode creëren om een ​​bericht af te drukken.
  • Coderegel 20: Een nieuwe string maken om een ​​bericht af te drukken.
  • Coderegel 21: Afdrukken van nieuw bericht gemaakt in regel 20.

Laten we een testklasse maken voor de bovenstaande Java-klasse om de uitzondering te verifiëren.

Zie onderstaande testklasse voor het uitvoeren van een unit-testuitzondering (hier ArithmeticException) die wordt gegenereerd vanuit de bovenstaande Java-klasse:

AirthematicTest.java

LuchtthematischeTest.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());
	
	}
}

Code Verklaring:

  • Coderegel 13: Met @Test annotatie maken we onze test. Als u bovenstaande klassenmethode uitvoert, roept het een wiskundige bewerking aan. Hier wordt Arithmetic Exception verwacht, dus u geeft het op als een parameter in @Test.
  • Coderegel 17: printMessage() aanroepen JUnitBericht.java
  • Coderegel 18: Een andere methode creëren om een ​​HI-bericht af te drukken.

Als u deze testklasse uitvoert, wordt de testmethode uitgevoerd met elke gedefinieerde parameter. In het bovenstaande voorbeeld wordt de testmethode vijf keer uitgevoerd.

Laten we het uitvoeren en het resultaat verifiëren. Zie hieronder de uit te voeren testrunnerklasse JunitTestExample.java

Output:

Hier is de uitvoer die een succesvolle test toont zonder fouttracering, zoals hieronder weergegeven:

LuchtthematischeTest.Java uitgang

Samenvatting

  • Uitzonderingstests zijn een speciale functie die is geïntroduceerd in JUnit4. In deze zelfstudie hebt u geleerd hoe u uitzonderingen kunt testen JUnit met @test(uitgezonderd)
  • Junit biedt de mogelijkheid om de uitzondering te traceren en ook om te controleren of de code een uitzondering genereert of niet
  • Voor het testen van uitzonderingen kunt u gebruiken
    • Optionele parameter (verwacht) van @test-annotatie en
    • Om de informatie te traceren kan “fail()” worden gebruikt