JUnit @Ігнорувати тестову анотацію з прикладом

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

Що таке JUnit @Ігнорувати тестову анотацію

Тестова анотація @Ignore використовується для ігнорування певних тестів або групи тестів, щоб пропустити помилку збірки.

@Ігнорувати анотацію можна використовувати у двох сценаріях, як наведено нижче:

  1. Якщо ви хочете ігнорувати метод тестування, використовуйте @Ignore разом із анотацією @Test.
  2. Якщо ви хочете ігнорувати всі тести класу, використовуйте анотацію @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” тестує “тест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.

@Ігнорувати анотацію можна використовувати у двох сценаріях, як наведено нижче:

  1. Якщо ви хочете ігнорувати метод тестування, використовуйте @Ignore разом із анотацією @Test.
  2. Якщо ви хочете ігнорувати всі тести класу, використовуйте анотацію @Ignore на рівні класу.

Ви також дізналися, як надати заяву, щоб зрозуміти іншому розробнику, чому певний тест вимкнено.

Детальніше ЧИТАТИ