JUnit @Zanemari testnu napomenu s primjerom

โšก Pametni saลพetak

JUnit Ignoriranje testnih anotacija omoguฤ‡uje programerima preskakanje pojedinaฤnih testnih metoda ili cijelih klasa tijekom izgradnje, pokrivajuฤ‡i sintaksu, razloge, uvjetno preskakanjepingi JUnit 5 Onemoguฤ‡ena migracija.

  • ???? Metoda preskakanja: @Ignore gore @Test ga zaobilazi.
  • ๐Ÿ“ Razlog: @Ignore(โ€œreasonโ€) prikazuje kontekst u izvjeลกฤ‡ima.
  • ???? Preskoฤi razred: @Ignore na klasi preskaฤe svaku metodu.
  • ๐Ÿงฉ Uvjetno: Kombiniraj s @Assume u JUnit 4.
  • ๐Ÿš€ JUnit 5: Koristite varijante @Disabled i EnabledOn.
  • ๐Ÿค– Trijaลพa umjetne inteligencije: AI automatski oznaฤava zastarjele ignorirane testove.

JUnit @Zanemari testnu napomenu

Ponekad moลพete zahtijevati da ne izvrลกite metodu/kod ili Testni sluฤaj jer kodiranje nije u potpunosti obavljeno. Za taj konkretni test, JUnit osigurava @Zanemariti napomena za preskakanje testa.

ล to je JUnit @Zanemari testnu napomenu

@Ignore test anotacija koristi se za ignoriranje odreฤ‘enih testova ili grupe testova kako bi se preskoฤila greลกka u izgradnji.

@Zanemariti anotacija se moลพe koristiti u dva scenarija kako je navedeno u nastavku:

  1. Ako ลพelite zanemariti testnu metodu, upotrijebite @Ignore zajedno s @Test napomenom.
  2. Ako ลพelite ignorirati sve testove klase, upotrijebite @Ignore napomenu na razini klase.

Moลพete navesti razlog za onemoguฤ‡avanje testa u izbornom parametru koji daje @Ignore annotation.

Pomoฤ‡i ฤ‡e drugim programerima koji rade na istom dijelu koda da razumiju "zaลกto je odreฤ‘eni test onemoguฤ‡en?" Kada se rijeลกi problem tog odreฤ‘enog testa, moลพete ga jednostavno omoguฤ‡iti uklanjanjem @Zanemari napomenu.

Primjer testa Junit โ€“ Ignoriraj

Kao ลกto je objaลกnjeno u gornjoj definiciji, moลพete koristiti napomenu @Ignore za ignoriranje testa ili grupe testova.

Razumimo to pomoฤ‡u jednostavnog primjera i scenarija u nastavku:

  1. Stvaranje jednostavne ispitne klase bez ignoriranja testa.
  2. Ignorirajte metodu testiranja pomoฤ‡u oznake @Ignore.
  3. Ignorirajte testnu metodu pomoฤ‡u napomene @Ignore s valjanim razlogom.
  4. Ignoriraj sve testne metode pomoฤ‡u oznake @Ignore.

Stvaranje jednostavne ispitne klase bez ignoriranja testa

Stvorimo jednostavan Java klasa koja ispisuje dvije vrste poruka.

  • Prva metoda ispisuje jednostavnu poruku i
  • Druga metoda ispisuje poruku "bok".

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

Stvorimo a JUnit ispitni razred za testiranje JUnitPoruka.java.

U ovom JUnit ispitni razred,

  • Prvi test, nazvan โ€œtestJUnitMessage()โ€ testira metodu โ€œprintMessage()โ€ gornje klase.
  • Sliฤno, drugi test, nazvan โ€œtestJUnitHiMessageโ€ testira โ€œtestJUnitHiMessageโ€ viลกe klase.
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

Kreirajmo klasu pokretaฤa testova za izvoฤ‘enje 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());							
   }		
}      	

Izlaz:

Stvaranje jednostavne testne klase bez zanemarivanja testa

Ispis izjave na konzoli:

Junit Hi Poruka se ispisuje

Bok!Guru99

Junit Poruka se ispisuje

Guru99

Ignorirajte metodu testiranja pomoฤ‡u oznake @Ignore

Kreirajmo test zanemarivanja da bismo onemoguฤ‡ili test u gornjem primjeru. Za ovo morate koristiti @Ignore u metodi koju ลพelite preskoฤiti.

Uฤinimo to za probuJUnitMessage() od 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());					

    }		
}

Izlaz:

Izvrลกimo i provjerimo izlaz gornjeg primjera.

Donji izlaz pokazuje da je jedan test preskoฤen (onemoguฤ‡en), pogledajte kako je oznaฤeno u nastavku:

Stvaranje jednostavne testne klase bez zanemarivanja testa

Ispis izjave na konzoli:

Junit Hi Poruka se ispisuje

Bok!Guru99

Koriลกtenje oznake @ ignore uz uvjet

Uzmimo primjer kako ignorirati test i uz njega definirati razlog ignoriranja. Kao ลกto je gore objaลกnjeno, za navoฤ‘enje razloga imate jedan izborni parametar u @Ignore napomeni gdje moลพete navesti izjavu o razlogu.

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

    }		
}		

Izlaz:

Isto kao ลกto je gore.

Zanemarite sve testne metode pomoฤ‡u oznake @Ignore.

Kao ลกto je gore objaลกnjeno, da biste zanemarili sve testove u razredu, morate koristiti @Ignore napomenu na razini razreda.

Modificirajmo gornji primjer da bismo razumjeli kako ignorirati sve testove:

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

    }		
}		

Izlaz:

Ignorirajte testne metode pomoฤ‡u oznake @Ignore

Ispis izjave na konzoli:

Kako su oba testa preskoฤena upotrebom @Ignore na razini razreda, tako da na konzoli neฤ‡e biti ispisana izjava.

Pitanja i odgovori

Preskaฤe testnu metodu ili klasu. U izvjeลกฤ‡ima se i dalje prikazuje kao preskoฤeno.

Da. Umjetna inteligencija analizira povijest neuspjeha kako bi oznaฤila nestabilne kandidate.

AI ubacuje @Ignore("reason") iz konteksta commita.

@Disabled, plus @DisabledOnOs i @EnabledOnJre.

Da. Oznaฤeno kao preskoฤeno, odvojeno od prolaza ili pada.

@DisabledOnOs(OS.WINDOWS) u JUnit 5.

Da. Gomile su dug; ponovno pregledajte svako izdanje.

Da. @Ignore iznad deklaracije klase.

Saลพmite ovu objavu uz: