Учебники

7) JUnit Игнорировать Тест

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

В этом уроке вы узнаете

Что такое тестовая аннотация JUnit @Ignore

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

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

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

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

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

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

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

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

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

Распечатать заявление на консоли:

Junit Привет Сообщение печатается

Привет! Guru99

Junit Сообщение печатается

Guru99

Игнорировать тестовый метод, используя аннотацию @Ignore

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

Давайте сделаем это для testJUnitMessage () из 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 Ignore Test

Распечатать заявление на консоли:

Junit Привет Сообщение печатается

Привет! Guru99

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

Давайте возьмем пример того, как игнорировать тест, и определим причину игнорирования вместе с ним. Как уже говорилось выше, чтобы указать причину, у вас есть один необязательный параметр в аннотации @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());					

    }		
}		

Вывод :

JUnit Ignore Test

Распечатать заявление на консоли:

Поскольку оба теста пропущены с использованием @Ignore на уровне класса, оператор не будет выводиться на консоль.

Резюме:

В этом руководстве вы узнали, как игнорировать отдельный тест, группу тестов или все тесты с помощью аннотации @Ignore.

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

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

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