JUnit Test očekávané výjimky: @Test (očekávané)
JUnit poskytuje zařízení pro sledování výjimky a také pro kontrolu, zda kód vyvolává očekávanou výjimku nebo ne.
Junit4 poskytuje snadný a čitelný způsob testování výjimek, který můžete použít
- Volitelný parametr (očekávaný) anotace @test a
- Ke sledování informací lze použít ”fail()”.
Zatímco Testování výjimku, musíte zajistit, že třída výjimky, kterou poskytujete, v tomto volitelném parametru @testovací anotace je stejný. Je to proto, že očekáváte výjimku od metody, kterou jste Testování jednotek, jinak naše JUnit test by selhal.
Example@Test(expected=IllegalArgumentException.class)
Pomocí parametru „očekávané“ můžete zadat název výjimky, který může náš test vyvolat. Ve výše uvedeném příkladu používáte „IllegalArgumentException” který bude vyvolán testem, pokud vývojář použije argument, který není povolen.
Příklad pomocí @test (očekáváno)
Pojďme pochopit testování výjimek vytvořením a Java třídy s metodou vyvolávající výjimku. Zvládnete to a vyzkoušíte na zkušební hodině. Zvážit JUnitMessage.java má metodu, která jednoduše provádí matematickou operaci na základě vstupu přijatého uživatelem. Pokud by byl zadán jakýkoli nezákonný argument, vyvolá to „ArithmeticException“. Viz níže:
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;
}
}
Vysvětlení kódu:
- 7. řádek kódu: Vytvoření parametrizovaného konstruktoru s inicializací pole.
- Řádek 11–14 kódu: Vytvoření metody pro matematické operace.
- 18. řádek kódu: Vytvoření jiného způsobu tisku zprávy.
- 20. řádek kódu: Vytvoření nového řetězce pro tisk zprávy.
- 21. řádek kódu: Tisk nové zprávy vytvořené na řádku 20.
Vytvořme testovací třídu pro výše uvedenou třídu Java pro ověření výjimky.
Viz níže testovací třída k výjimce z testování jednotek (zde ArithmeticException) házení z výše uvedené třídy 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());
}
}
Vysvětlení kódu:
- 13. řádek kódu: Pomocí anotace @Test k vytvoření našeho testu. Když spustíte výše uvedenou metodu tříd, vyvolá matematickou operaci. Zde se očekává aritmetická výjimka, takže ji uvádíte jako parametr v @Test.
- 17. řádek kódu: Vyvolání printMessage() JUnitMessage.java
- 18. řádek kódu: Vytvoření další metody pro tisk zprávy HI.
Pokud spustíte tuto třídu testu, metoda testu se provede s každým definovaným parametrem. Ve výše uvedeném příkladu je testovací metoda provedena pětkrát.
Provedeme to a ověříme výsledek. Níže naleznete třídu testovacích běžců, kterou chcete provést JunitTestExample.java
Výstup:
Zde je výstup, který ukazuje úspěšný test bez stopy selhání, jak je uvedeno níže:
Shrnutí
- Testování výjimek je speciální funkce zavedená v JUnit4. V tomto tutoriálu jste se naučili, jak testovat výjimku v JUnit pomocí @test (s výjimkou)
- Junit poskytuje zařízení pro sledování výjimky a také pro kontrolu, zda kód vyvolává výjimku nebo ne
- Pro testování výjimek můžete použít
- Volitelný parametr (očekávaný) anotace @test a
- Ke sledování informací lze použít ”fail()”.



