JUnit предоставя съоръжението за проследяване на изключението и също така за проверка дали кодът хвърля очаквано изключение или не.
Junit4 предоставя лесен и четим начин за тестване на изключения, който можете да използвате
- Незадължителен параметър (очакван) на @test анотация и
- За проследяване на информацията може да се използва "fail ()"
Докато тествате изключение, трябва да се уверите, че класът на изключението, който предоставяте в този незадължителен параметър на @test анотация, е същият. Това е така, защото очаквате изключение от метода, който сте Тестване на единица, в противен случай нашият JUnit тест ще се провали.
Пример @ тест (очаква се = IllegalArgumentException.class)
Използвайки параметъра "очаквано", можете да посочите името на изключението, което нашият тест може да даде. В горния пример използвате " IllegalArgumentException", който ще бъде хвърлен от теста, ако разработчикът използва аргумент, който не е разрешен.
Пример за използване на @test (очаква се)
Нека разберем тестването на изключения чрез създаване на клас Java с метод, който хвърля изключение. Ще се справите и ще го тествате в тестов клас. Помислете за това, че JUnitMessage.java има метод, който просто извършва математическа операция въз основа на вход, получен от потребителя. Ако бъде въведен някакъв незаконен аргумент, той ще хвърли "ArithmeticException " . Виж отдолу:
пакет guru99.junit;публичен клас JUnitMessage {частно низово съобщение;публично JUnitMessage (низово съобщение) {this.message = съобщение;}public void printMessage () {System.out.println (съобщение);int разделяне = 1/0;}публичен низ printHiMessage () {message = "Здравей!" + съобщение;System.out.println (съобщение);съобщение за връщане;}}
Обяснение на кода:
- Кодова линия 7: Създаване на параметризиран конструктор с инициализация на поле.
- Кодова линия 11-14: Създаване на метод за математическа операция.
- Кодов ред 18: Създаване на друг метод за отпечатване на съобщение.
- Кодов ред 20: Създаване на нов низ за отпечатване на съобщение.
- Код ред 21: Отпечатване на ново съобщение, създадено в ред 20.
Нека създадем тестов клас за над Java клас, за да проверим изключението.
Вижте по-долу клас на изпитване за изключение на единичен тест (ArithmeticException тук), хвърляне от горния клас на Java:
AirthematicTest.java
пакет guru99.junit;импортиране на статични org.junit.Assert.assertEquals;внос org.junit.Test;публичен клас AirthematicTest {съобщение на публичен низ = "Saurabh";JUnitMessage junitMessage = ново JUnitMessage (съобщение);@Test (очаква се = ArithmeticException.class)public void testJUnitMessage () {System.out.println („Junit Message се отпечатва“);junitMessage.printMessage ();}@Тестpublic void testJUnitHiMessage () {message = "Здравей!" + съобщение;System.out.println („Junit Message се отпечатва“);assertEquals (message, junitMessage.printMessage ());}}
Обяснение на кода:
- Код ред 13: Използване на @Test анотация за създаване на нашия тест. Докато изпълнявате метода по-горе, той ще извика математическа операция. Тук се очаква аритметично изключение, така че го посочвате като параметър в @Test.
- Кодов ред 17: Извикване на printMessage () JUnitMessage.java
- Кодов ред 18: Създаване на друг метод за отпечатване на HI съобщение.
Ако изпълните този тестов клас, тестовият метод се изпълнява с всеки дефиниран параметър. В горния пример методът на теста се изпълнява пет пъти.
Нека го изпълним и проверим резултата. Вижте по-долу тестовия клас бегач за изпълнение на JunitTestExample.java
Изход:
Ето изхода, който показва успешен тест без проследяване на грешки, както е дадено по-долу:
Резюме:
- Тестването на изключения е специална функция, въведена в JUnit4. В този урок сте научили как да тествате изключение в JUnit с помощта на @test (изключено)
- Junit предоставя съоръжението за проследяване на изключението и също така за проверка дали кодът изпраща изключение или не
- За тестване на изключения можете да използвате
- Незадължителен параметър (очакван) на @test анотация и
- За проследяване на информацията може да се използва "fail ()"