JUnit @Игнорировать тестовую аннотацию с примером
Иногда вам может потребоваться не выполнять метод/код или Тестовый кейс потому что кодирование выполнено не полностью. Для этого конкретного теста JUnit приводит @ Игнорировать аннотация, чтобы пропустить тест.
Что такое JUnit @Игнорировать тестовую аннотацию
Аннотация теста @Ignore используется для игнорирования определенных тестов или группы тестов, чтобы пропустить сбой сборки.
@ Игнорировать аннотацию можно использовать в двух сценариях, как указано ниже:
- Если вы хотите игнорировать метод тестирования, используйте @Ignore вместе с аннотацией @Test.
- Если вы хотите игнорировать все тесты класса, используйте аннотацию @Ignore на уровне класса.
Вы можете указать причину отключения теста в необязательном параметре, предоставленном аннотацией @Ignore.
Это поможет другим разработчикам, работающим над тем же фрагментом кода, понять, «почему тот или иной тест отключен?» Когда проблема с этим конкретным тестом будет устранена, вы можете просто включить его, удалив @ Игнорировать аннотацию.
Пример теста Junit – игнорировать
Как обсуждалось в приведенном выше определении, вы можете использовать аннотацию @Ignore, чтобы игнорировать тест или группу тестов.
Давайте разберемся в этом на простом примере и в приведенных ниже сценариях:
- Создание простого тестового класса без игнорирования теста.
- Игнорируйте метод тестирования, используя аннотацию @Ignore.
- Игнорируйте метод тестирования с помощью аннотации @Ignore по уважительной причине.
- Игнорируйте все методы тестирования, используя аннотацию @Ignore.
Создание простого тестового класса без игнорирования теста
Давайте создадим простой Java класс, который печатает два типа сообщений.
- Первый метод печатает простое сообщение и
- Второй метод печатает сообщение «привет».
JUnitСообщение.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 тестовый класс для тестирования JUnitСообщение.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 в методе, который вы хотите пропустить.
Давайте сделаем это для тестаJUnitСообщение() из 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 на уровне класса.
Вы также узнали, как предоставить заявление, чтобы другой разработчик понял, почему тот или иной тест отключен.