JUnit @Ignore Adnotare de testare cu exemplu

โšก Rezumat inteligent

JUnit Ignorarea adnotฤƒrii de testare permite dezvoltatorilor sฤƒ sarฤƒ peste metode individuale de testare sau clase รฎntregi รฎn timpul construcศ›iilor, acoperind sintaxa, motivele, omiterea condiศ›ionatฤƒping ศ™i JUnit 5 Migrare dezactivatฤƒ.

  • ๐Ÿšซ Metoda de omitere: @Ignore de mai sus @Test รฎl ocoleศ™te.
  • ๐Ÿ“ Motiv: @Ignore(โ€žmotivโ€) aratฤƒ contextul รฎn rapoarte.
  • ๐Ÿ“ฆ Sari peste clasฤƒ: @Ignore รฎntr-o clasฤƒ sare peste fiecare metodฤƒ.
  • ๐Ÿงฉ Condiลฃional: Combinฤƒ cu @Assume รฎn JUnit 4.
  • ๐Ÿš€ JUnit 5: Foloseศ™te variantele @Disabled ศ™i EnabledOn.
  • ๐Ÿค– Triaj AI: AI semnaleazฤƒ automat testele ignorate ca fiind รฎnvechite.

JUnit @Ignoraศ›i adnotarea testului

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ฤƒ.

รŽntrebฤƒri frecvente

Omite o metodฤƒ sau o clasฤƒ de testare. Se afiศ™eazฤƒ รฎn continuare ca omisฤƒ รฎn rapoarte.

Da. Inteligenศ›a artificialฤƒ analizeazฤƒ istoricul eศ™ecurilor pentru a semnala candidaศ›ii instabili.

AI insereazฤƒ @Ignore(โ€žreasonโ€) din contextul commit-ului.

@Disabled, plus @DisabledOnOs ศ™i @EnabledOnJre.

Da. Marcat ca omis, separat de acceptat sau respins.

@DisabledOnOs(OS.WINDOWS) รฎn JUnit 5.

Da. Acumuleazฤƒ datorii; revizuiesc fiecare lansare.

Da. @Ignore deasupra declaraศ›iei clasei.

Rezumaศ›i aceastฤƒ postare cu: