JUnit @Ігнорувати тестову анотацію з прикладом
Іноді вам може знадобитися не виконувати метод/код або Тестовий випадок оскільки кодування виконано не повністю. Для цього конкретного тесту, JUnit забезпечує @Ігнорувати анотація про пропуск тесту.
Що таке JUnit @Ігнорувати тестову анотацію
Тестова анотація @Ignore використовується для ігнорування певних тестів або групи тестів, щоб пропустити помилку збірки.
@Ігнорувати анотацію можна використовувати у двох сценаріях, як наведено нижче:
- Якщо ви хочете ігнорувати метод тестування, використовуйте @Ignore разом із анотацією @Test.
- Якщо ви хочете ігнорувати всі тести класу, використовуйте анотацію @Ignore на рівні класу.
Ви можете вказати причину вимкнення тесту в необов’язковому параметрі, наданому анотацією @Ignore.
Це допоможе іншим розробникам, які працюють над тим самим фрагментом коду, зрозуміти, «чому певний тест вимкнено?» Коли проблема цього конкретного тесту буде вирішена, ви можете просто ввімкнути його, видаливши @Ігнорувати анотацію.
Приклад тесту Junit – ігнорувати
Як зазначено у визначенні вище, ви можете використовувати анотацію @Ignore, щоб ігнорувати тест або групу тестів.
Давайте зрозуміємо це на простому прикладі та в наведених нижче сценаріях:
- Створення простого тестового класу без ігнорування тесту.
- Ігноруйте метод тестування за допомогою анотації @Ignore.
- Ігноруйте метод тестування за допомогою анотації @Ignore з належної причини.
- Ігнорувати всі тестові методи за допомогою анотації @Ignore.
Створення простого тестового класу без ігнорування тесту
Давайте створимо простий Java клас, який друкує два типи повідомлень.
- Перший спосіб друкує просте повідомлення та
- Другий спосіб друкує повідомлення «привіт».
JUnitMessage.java
package guru99.junit; public class JUnitMessage { private String message; public JUnitMessage(String message) { this.message = message; } public String printMessage(){ System.out.println(message); return message; } public String printHiMessage(){ message="Hi!"+ message; System.out.println(message); return message; } }
JunitTestExample.java
Давайте створимо а JUnit тест клас перевірити JUnitMessage.java.
В цьому JUnit тестовий клас,
- Перший тест під назвою «testJUnitMessage()” перевіряє метод “printMessage()” класу вище.
- Подібним чином другий тест під назвою «testJUnitHiMessage” тестує “тестJUnitHiMessage» вище класу.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing"); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
TestRunner.java
Давайте створимо клас запуску тестів для виконання JunitTestExample.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(JunitTestExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
вихід:
Роздрукувати заяву на консолі:
Друкується повідомлення Junit Привіт
Привіт! Guru99
Друкується повідомлення Junit
Guru99
Ігноруйте метод тестування за допомогою анотації @Ignore
Давайте створимо тест ігнорування, щоб вимкнути тест у наведеному вище прикладі. Для цього вам потрібно використовувати @Ignore у методі, який ви хочете пропустити.
Давайте зробимо це для тестуJUnitMessage() JunitTestExample.java
JunitTestExample.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
вихід:
Давайте виконаємо та перевіримо результат наведеного вище прикладу.
Нижче показано, що один тест пропущено (вимкнено), дивіться, як зазначено нижче:
Роздрукувати заяву на консолі:
Друкується повідомлення Junit Привіт
Привіт! Guru99
Використання анотації @ ignore з умовою
Розглянемо на прикладі, як проігнорувати тест і разом з ним визначимо причину ігнорування. Як обговорювалося вище, щоб надати причину, у вас є один необов’язковий параметр в анотації @Ignore, де ви можете вказати причину.
JunitTestExample.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore("not yet ready , Please ignore.") @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
вихід:
Так само, як вище.
Ігноруйте всі методи тестування за допомогою анотації @Ignore.
Як обговорювалося вище, щоб ігнорувати всі тести в класі, вам потрібно використовувати анотацію @Ignore на рівні класу.
Давайте змінимо наведений вище приклад, щоб зрозуміти, як ігнорувати всі тести:
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; @Ignore public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Вихід:
Роздрукувати заяву на консолі:
Оскільки обидва тести були пропущені через використання @Ignore на рівні класу, тому жодний оператор не друкувався на консолі.
Підсумки
У цьому посібнику ви дізналися, як ігнорувати один тест, групу тестів або всі тести за допомогою анотації @Ignore.
@Ігнорувати анотацію можна використовувати у двох сценаріях, як наведено нижче:
- Якщо ви хочете ігнорувати метод тестування, використовуйте @Ignore разом із анотацією @Test.
- Якщо ви хочете ігнорувати всі тести класу, використовуйте анотацію @Ignore на рівні класу.
Ви також дізналися, як надати заяву, щоб зрозуміти іншому розробнику, чому певний тест вимкнено.