JUnit @Ignorer testanmærkning med eksempel

Nogle gange kan du kræve ikke at udføre en metode/kode eller Test sag fordi kodning ikke er fuldført. Til den specifikke test, JUnit giver @Ignorere anmærkning for at springe testen over.

Hvad er JUnit @Ignorer testanmærkning

@Ignorer testanmærkningen bruges til at ignorere bestemte tests eller gruppe af tests for at springe byggefejlen over.

@Ignorere annotering kan bruges i to scenarier som angivet nedenfor:

  1. Hvis du vil ignorere en testmetode, skal du bruge @Ignore sammen med @Test-annotering.
  2. Hvis du vil ignorere alle klassens test, skal du bruge @Ignore annotation på klasseniveau.

Du kan angive årsagen til at deaktivere en test i den valgfri parameter, der leveres af @Ignorer annotering.

Det vil hjælpe andre udviklere, der arbejder på det samme stykke kode, til at forstå "hvorfor en bestemt test er deaktiveret?" Når problemet med den pågældende test er løst, kan du blot aktivere den ved at fjerne @Ignorer anmærkning.

Junit Test Eksempel – Ignorer

Som diskuteret i ovenstående definition, kan du bruge @Ignorer annotering til at ignorere en test eller gruppe af testen.

Lad os forstå det ved hjælp af et simpelt eksempel og i nedenstående givne scenarier:

  1. Oprettelse af en simpel testklasse uden at ignorere en test.
  2. Ignorer en testmetode ved hjælp af @Ignorer annotering.
  3. Ignorer en testmetode ved hjælp af @Ignorer annotering med korrekt begrundelse.
  4. Ignorer alle testmetoder ved hjælp af @Ignorer annotering.

Oprettelse af en simpel testklasse uden at ignorere en test

Lad os skabe en enkel Java klasse, som udskriver to typer beskeder.

  • Første metode udskriver en simpel besked og
  • Den anden metode udskriver en "hej"-meddelelse

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

Lad os skabe en JUnit test klasse for at teste JUnitMessage.java.

I denne JUnit test klasse,

  • Første test, kaldet "testJUnitMessage()" tester "printMessage()"-metoden af ​​ovenstående klasse.
  • Tilsvarende den anden test, kaldet "testJUnitHiMessage" tester "testJUnitHiMessage" af ovenstående klasse.
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

Lad os oprette en testløber-klasse for at udføre 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());							
   }		
}      	

Output:

Oprettelse af en simpel testklasse uden at ignorere en test

Udskriv erklæring på konsollen:

Junit Hi Message udskrives

Hej!Guru99

Junit Message udskrives

Guru99

Ignorer en testmetode ved hjælp af @Ignorer annotering

Lad os oprette ignoreringstest for at deaktivere en test i ovenstående eksempel. Til dette skal du bruge @Ignore i den metode, du vil springe over.

Lad os gøre det til testJUnitBesked() fra 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());					

    }		
}

Output:

Lad os udføre og verificere outputtet fra ovenstående eksempel.

Nedenstående output viser, at en test er sprunget over (deaktiveret), se som markeret nedenfor:

Oprettelse af en simpel testklasse uden at ignorere en test

Udskriv erklæring på konsollen:

Junit Hi Message udskrives

Hej!Guru99

Brug @ ignorer annotering med betingelse

Lad os tage eksemplet med, hvordan man ignorerer en test og definerer årsagen til at ignorere sammen med den. Som diskuteret ovenfor, for at angive en årsag har du én valgfri parameter i @Ignorer annotering, hvor du kan angive årsagserklæringen.

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

    }		
}		

Output:

Samme som ovenfor.

Ignorer alle testmetoder ved hjælp af @Ignorer annotering.

Som diskuteret ovenfor for at ignorere alle testene i klassen, skal du bruge @Ignorer annotering på klasseniveau.

Lad os ændre ovenstående eksempel for at forstå, hvordan man ignorerer alle testene:

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

    }		
}		

Output:

Ignorer testmetoder ved hjælp af @Ignore Annotation

Udskriv erklæring på konsollen:

Da begge testene sprang over ved at bruge @Ignore på klasseniveau, så ville ingen erklæring blive udskrevet på konsollen.

Resumé

I dette selvstudie lærte du, hvordan du ignorerer en enkelt test, gruppe af test eller alle test ved at bruge @Ignorer annotering.

@Ignorere annotering kan bruges i to scenarier som angivet nedenfor:

  1. Hvis du vil ignorere en testmetode, skal du bruge @Ignore sammen med @Test-annotering.
  2. Hvis du vil ignorere alle klassens test, skal du bruge @Ignore annotation på klasseniveau.

Du lærte også, hvordan du giver en erklæring for at forstå andre udviklere, hvorfor en bestemt test er deaktiveret.

Læs mere Læs mere