JUnit @Ignore Adnotare de testare cu exemplu

Uneori este posibil să solicitați să nu executați o metodă/cod sau Caz de testare deoarece codificarea nu se face pe deplin. Pentru acel test special, JUnit furnizează @Ignora adnotare pentru a sări peste test.

Ce Este JUnit @Ignorați adnotarea testului

Adnotarea de test @Ignore este utilizată pentru a ignora anumite teste sau grupuri de teste pentru a omite eșecul de construire.

@Ignora adnotarea poate fi utilizată în două scenarii, după cum este prezentat mai jos:

  1. Dacă doriți să ignorați o metodă de testare, utilizați @Ignore împreună cu adnotarea @Test.
  2. Dacă doriți să ignorați toate testele clasei, utilizați adnotarea @Ignore la nivel de clasă.

Puteți furniza motivul pentru dezactivarea unui test în parametrul opțional furnizat de adnotarea @Ignore.

Va ajuta alți dezvoltatori care lucrează la aceeași bucată de cod, să înțeleagă „de ce un anumit test este dezactivat?” Când problema respectivului test este remediată, îl puteți activa pur și simplu prin eliminare @Ignorați adnotarea.

Exemplu de test Junit – Ignorați

După cum sa discutat în definiția de mai sus, puteți utiliza adnotarea @Ignore pentru a ignora un test sau un grup de test.

Să-l înțelegem folosind un exemplu simplu și în scenariile de mai jos:

  1. Crearea unei clase de testare simplă fără a ignora un test.
  2. Ignorați o metodă de testare folosind adnotarea @Ignore.
  3. Ignorați o metodă de testare folosind adnotarea @Ignore cu un motiv adecvat.
  4. Ignorați toate metodele de testare folosind adnotarea @Ignore.

Crearea unei clase de testare simplă fără a ignora un test

Să creăm un simplu Java clasă care imprimă două tipuri de mesaje.

  • Prima metodă imprimă un mesaj simplu și
  • A doua metodă imprimă un mesaj „bună”.

JUnitMesaj.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

Să creăm un JUnit clasa de testare de testat JUnitMesaj.java.

În acest JUnit clasa de testare,

  • Primul test, numit „testJUnitMessage()” testează metoda „printMessage()” din clasa de mai sus.
  • În mod similar, al doilea test, denumit „testJUnitHiMessage” testează „testJUnitHiMessage” din clasa de mai sus.
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

Să creăm o clasă test runner pentru a executa 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());							
   }		
}      	

ieșire:

Crearea unei clase de testare simplă fără a ignora un test

Imprimați declarația pe consolă:

Mesajul Junit Salut se imprimă

Bună! Guru99

Mesajul Junit se imprimă

Guru99

Ignorați o metodă de testare folosind adnotarea @Ignore

Să creăm testul de ignorare pentru a dezactiva un test din exemplul de mai sus. Pentru aceasta, trebuie să utilizați @Ignore în metodă, doriți să omiteți.

Să o facem pentru testJUnitMessage() din 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());					

    }		
}

ieșire:

Să executăm și să verificăm rezultatul exemplului de mai sus.

Rezultatul de mai jos arată că un test este omis (dezactivat), vezi după cum este marcat mai jos:

Crearea unei clase de testare simplă fără a ignora un test

Imprimați declarația pe consolă:

Mesajul Junit Salut se imprimă

Bună! Guru99

Folosind @ ignore adnotarea cu Condiție

Să luăm exemplul cum să ignorăm un test și să definim motivul ignorării împreună cu acesta. După cum sa discutat mai sus, pentru a furniza un motiv, aveți un parametru opțional în adnotarea @Ignore, unde puteți furniza declarația motivului.

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());					

    }		
}		

ieșire:

La fel ca mai sus.

Ignorați toate metodele de testare folosind adnotarea @Ignore.

După cum sa discutat mai sus, pentru a ignora toate testele din clasă, trebuie să utilizați adnotarea @Ignore la nivel de clasă.

Să modificăm exemplul de mai sus pentru a înțelege cum să ignorăm toate testele:

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());					

    }		
}		

ieşire:

Ignorați metodele de testare folosind @Ignore Annotation

Imprimați declarația pe consolă:

Deoarece ambele teste au fost sărite utilizând @Ignore la nivel de clasă, nicio declarație nu va fi tipărită pe consolă.

Rezumat

În acest tutorial, ați învățat cum să ignorați un singur test, un grup de teste sau toate testele utilizând adnotarea @Ignore.

@Ignora adnotarea poate fi utilizată în două scenarii, după cum este prezentat mai jos:

  1. Dacă doriți să ignorați o metodă de testare, utilizați @Ignore împreună cu adnotarea @Test.
  2. Dacă doriți să ignorați toate testele clasei, utilizați adnotarea @Ignore la nivel de clasă.

Ați învățat, de asemenea, cum să furnizați o declarație pentru a-i face să înțeleagă pe celălalt dezvoltator, de ce un anumit test este dezactivat.