JUnit @Игнорировать тестовую аннотацию с примером

Иногда вам может потребоваться не выполнять метод/код или Тестовый кейс потому что кодирование выполнено не полностью. Для этого конкретного теста JUnit приводит @ Игнорировать аннотация, чтобы пропустить тест.

Что такое JUnit @Игнорировать тестовую аннотацию

Аннотация теста @Ignore используется для игнорирования определенных тестов или группы тестов, чтобы пропустить сбой сборки.

@ Игнорировать аннотацию можно использовать в двух сценариях, как указано ниже:

  1. Если вы хотите игнорировать метод тестирования, используйте @Ignore вместе с аннотацией @Test.
  2. Если вы хотите игнорировать все тесты класса, используйте аннотацию @Ignore на уровне класса.

Вы можете указать причину отключения теста в необязательном параметре, предоставленном аннотацией @Ignore.

Это поможет другим разработчикам, работающим над тем же фрагментом кода, понять, «почему тот или иной тест отключен?» Когда проблема с этим конкретным тестом будет устранена, вы можете просто включить его, удалив @ Игнорировать аннотацию.

Пример теста Junit – игнорировать

Как обсуждалось в приведенном выше определении, вы можете использовать аннотацию @Ignore, чтобы игнорировать тест или группу тестов.

Давайте разберемся в этом на простом примере и в приведенных ниже сценариях:

  1. Создание простого тестового класса без игнорирования теста.
  2. Игнорируйте метод тестирования, используя аннотацию @Ignore.
  3. Игнорируйте метод тестирования с помощью аннотации @Ignore по уважительной причине.
  4. Игнорируйте все методы тестирования, используя аннотацию @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.

@ Игнорировать аннотацию можно использовать в двух сценариях, как указано ниже:

  1. Если вы хотите игнорировать метод тестирования, используйте @Ignore вместе с аннотацией @Test.
  2. Если вы хотите игнорировать все тесты класса, используйте аннотацию @Ignore на уровне класса.

Вы также узнали, как предоставить заявление, чтобы другой разработчик понял, почему тот или иной тест отключен.

Читать прочитайте больше