JUnit Очакван тест за изключение: @Test(очаква се)
JUnit предоставя възможност за trace изключението, а също и да провери дали кодът хвърля очаквано изключение или не.
Junit4 предоставя лесен и четим начин за тестване на изключения, който можете да използвате
- Незадължителен параметър (очаква се) на @test анотация и
- Да се tracинформацията „fail()“ може да се използва
Докато Тестване изключение, трябва да се уверите, че класът на изключение предоставяте в този незадължителен параметър на @test анотация е същото. Това е така, защото очаквате изключение от метода, който сте Единично тестване, иначе нашите JUnit тестът ще се провали.
Example@Test(expected=IllegalArgumentException.class)
Като използвате параметъра „очакван“, можете да посочите името на изключението, което нашият тест може да хвърли. В горния пример вие използвате „IllegalArgumentException” който ще бъде хвърлен от теста, ако разработчикът използва аргумент, който не е разрешен.
Пример с използване на @test(очаква се)
Нека разберем тестването на изключения, като създадем a Java клас с метод, хвърлящ изключение. Ще се справите с него и ще го тествате в тестов клас. Помислете JUnitMessage.java има метод, който просто извършва математическа операция въз основа на входни данни, получени от потребителя. Ако бъде въведен незаконен аргумент, той ще хвърли „ArithmeticException“. Вижте по-долу:
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 Обяснение:
- Code Ред 7: Създаване на параметризиран конструктор с инициализация на полето.
- Code Ред 11-14: Създаване на метод за математически операции.
- Code Ред 18: Създаване на друг метод за отпечатване на съобщение.
- Code Ред 20: Създаване на нов низ за отпечатване на съобщение.
- Code Ред 21: Отпечатване на ново съобщение, създадено в ред 20.
Нека създадем тестов клас за горния java клас, за да проверим изключението.
Вижте по-долу изключение от тестов клас към единичен тест (ArithmeticException тук) хвърляне от горния 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());
}
}
Code Обяснение:
- Code Ред 13: Използване на @Test анотация за създаване на нашия тест. Докато изпълнявате метода на класовете по-горе, той ще извика математическа операция. Тук се очаква аритметично изключение, така че го изброявате като параметър в @Test.
- Code Ред 17: Извикване на printMessage() JUnitСъобщение.java
- Code Ред 18: Създаване на друг метод за отпечатване на HI съобщение.
Ако изпълните този тестов клас, тестовият метод се изпълнява с всеки дефиниран параметър. В горния пример тестовият метод се изпълнява пет пъти.
Нека го изпълним и проверим резултата. Вижте по-долу тестовия клас за изпълнение JunitTestExample.java
Изход:
Ето резултата, който показва успешен тест без неуспех tracкакто е посочено по-долу:
Oбобщение
- Тестването на изключения е специална функция, въведена в JUnit4. В този урок научихте как да тествате изключение в JUnit използвайки @test (с изключение)
- Junit предоставя възможност за trace изключението, а също и да провери дали кодът хвърля изключение или не
- За тестване на изключения можете да използвате
- Незадължителен параметър (очаква се) на @test анотация и
- Да се tracинформацията „fail()“ може да се използва



