JUnit - Ignoruj ​​test

Czasami zdarza się, że nasz kod nie jest w pełni gotowy podczas uruchamiania przypadku testowego. W rezultacie przypadek testowy kończy się niepowodzeniem. Plik@Ignore adnotacja pomaga w tym scenariuszu.

  • Metoda testowa z adnotacją @Ignore nie zostanie wykonana.

  • Jeśli klasa testowa ma adnotację @Ignore, żadna z jej metod testowych nie zostanie wykonana.

Teraz zobaczmy @Ignore w akcji.

Utwórz klasę

Utwórz klasę Java do przetestowania, powiedzmy MessageUtil.java w C: \> JUNIT_WORKSPACE.

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message){
      this.message = message; 
   }

   // prints the message
   public String printMessage(){
      System.out.println(message);
      return message;
   }   

   // add "Hi!" to the message
   public String salutationMessage(){
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }   
	
}

Utwórz klasę przypadku testowego

  • Utwórz klasę testową Java, na przykład TestJunit.java.

  • Dodaj metodę testową testPrintMessage () lub testSalutationMessage () do swojej klasy testowej.

  • Dodaj Annotaion @Ignore do metody testPrintMessage ().

Utwórz plik klasy Java o nazwie TestJunit.java w C: \ JUNIT_WORKSPACE.

import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
   
   @Ignore
   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Robert";
      assertEquals(message,messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
	
}

Utwórz testową klasę biegacza

Utwórz plik klasy Java o nazwie TestRunner.java w C: \> JUNIT_WORKSPACE, aby wykonać przypadek testowy.

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(TestJunit.class);

      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

Skompiluj klasy MessageUtil, Test case i Test Runner przy użyciu javac.

C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java

Teraz uruchom Test Runner, który nie uruchomi przypadku testowego testPrintMessage () zdefiniowanego w podanej klasie Test Case.

C:\JUNIT_WORKSPACE>java TestRunner

Sprawdź dane wyjściowe. Przypadek testowy testPrintMessage () nie jest testowany.

Inside testSalutationMessage()
Hi!Robert
true

Teraz zaktualizuj TestJunit w C: \> JUNIT_WORKSPACE, aby zignorować wszystkie przypadki testowe. Dodaj @Ignore na poziomie klasy.

import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

@Ignore
public class TestJunit {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
     
   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Robert";
      assertEquals(message,messageUtil.printMessage());
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
	
}

Skompiluj przypadek testowy przy użyciu javac.

C:\JUNIT_WORKSPACE>javac TestJunit.java

Zachowaj swojego testera bez zmian w następujący sposób -

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(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

Teraz uruchom Test Runner, który nie uruchomi żadnego przypadku testowego zdefiniowanego w podanej klasie Test Case.

C:\JUNIT_WORKSPACE>java TestRunner

Sprawdź dane wyjściowe. Żaden przypadek testowy nie jest testowany.

true