JUnit Forventet undtagelsestest: @Test(forventet)

JUnit giver mulighed for at spore undtagelsen og også kontrollere, om koden er throwing forventet undtagelse eller ej.

Junit4 giver en nem og readable 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, andrewise 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 throwing en undtagelse. Du vil håndtere det og teste det i en testklasse. Overveje JUnitMessage.java har en metode, der blot laver en matematisk operation baseret på input modtaget af brugeren. Hvis et ulovligt argument ville blive indtastet, vil det kaste "ArithmeticException". Se nedenunder:

Eksempel ved brug af @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;
}

}

Kodeforklaring:

  • Kodelinje 7: Oprettelse af en parameteriseret konstruktør med feltinitialisering.
  • Kodelinje 11-14: At skabe 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) throwing ovenfra java klasse:

AirthematicTest.java

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:

AirthematicTest.Java Output

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å kontrollere, om koden er throwing undtagelse eller ej
  • Til undtagelsestestning kan du bruge
    • Valgfri parameter (forventet) for @test annotation og
    • For at spore informationen kan "fail()" bruges