JUnit @Örnekle Test Açıklamasını Yoksay

⚡ Akıllı Özet

JUnit "Ignore Test Annotation" özelliği, geliştiricilerin derleme sırasında tek tek test yöntemlerini veya tüm sınıfları atlamasına olanak tanır; sözdizimi, nedenler ve koşullu atlama gibi konuları kapsar.ping, ve JUnit 5. Göç devre dışı bırakıldı.

  • ???? Atla Yöntemi: @Yukarıdaki @Test'i dikkate almayın, @Test bunu atlıyor.
  • 📝 Nedeni: @Ignore(“reason”) raporlarda bağlamı gösterir.
  • ???? Derse girmeden geç: Bir sınıfta `@Ignore` kullanmak, tüm metotları atlar.
  • 🧩 Koşullu: @Assume ile birleştirin JUnit 4.
  • ???? JUnit 5: @Disabled ve EnabledOn varyantlarını kullanın.
  • 🤖 Yapay Zeka Triyajı: Yapay zeka, göz ardı edilen ve güncelliğini yitirmiş testleri otomatik olarak işaretler.

JUnit @Test Ek Açıklamasını Yoksay

Bazen bir yöntemi/kodu yürütmemeniz gerekebilir veya Test Durumu Çünkü kodlama tam olarak yapılmamıştır. Söz konusu test için, JUnit sağlar @Görmezden gelmek testi atlamak için ek açıklama.

Nedir? JUnit @Test açıklamasını yoksay

@Ignore test açıklaması, derleme hatasını atlamak amacıyla belirli testleri veya test gruplarını yok saymak için kullanılır.

@Görmezden gelmek Ek açıklama aşağıda gösterildiği gibi iki senaryoda kullanılabilir:

  1. Bir test yöntemini yoksaymak istiyorsanız @Ignore'u @Test ek açıklamasıyla birlikte kullanın.
  2. Sınıfın tüm testlerini yoksaymak istiyorsanız sınıf düzeyinde @Ignore ek açıklamasını kullanın.

@Ignore ek açıklaması tarafından sağlanan isteğe bağlı parametrede bir testi devre dışı bırakmanın nedenini belirtebilirsiniz.

Aynı kod parçası üzerinde çalışan diğer geliştiricilerin "belirli bir testin neden devre dışı bırakıldığını" anlamalarına yardımcı olacaktır. Söz konusu testin sorunu çözüldüğünde, onu kaldırarak etkinleştirebilirsiniz. @Ek açıklamayı yoksay.

Junit Test Örneği – Yoksay

Yukarıdaki tanımda tartışıldığı gibi, bir testi veya test grubunu yoksaymak için @Ignore açıklamasını kullanabilirsiniz.

Basit bir örnek kullanarak ve aşağıda verilen senaryoları kullanarak bunu anlayalım:

  1. Bir testi göz ardı etmeden basit bir test sınıfı oluşturma.
  2. @Ignore ek açıklamasını kullanan bir test yöntemini yoksayın.
  3. Doğru sebeple @Ignore ek açıklamasını kullanan bir test yöntemini yoksayın.
  4. @Ignore ek açıklamasını kullanan tüm test yöntemlerini göz ardı edin.

Bir testi göz ardı etmeden basit bir test sınıfı oluşturma

Basit bir oluşturalım Java İki tür mesaj basan sınıf.

  • İlk yöntem basit bir mesaj yazdırır ve
  • İkinci yöntem bir “merhaba” mesajı yazdırır

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;					
}    		
    		
}		

JunitTestÖrneği.java

Hadi bir JUnit test edilecek test sınıfı JUnitMesaj.java.

Bu JUnit deneme sınıfı,

  • “Test” adı verilen ilk testJUnitMesaj()” yukarıdaki sınıfın “printMessage()” yöntemini test eder.
  • Benzer şekilde “test” adı verilen ikinci testJUnitHiMessage” testleri “testiJUnitYukarıdaki sınıfın HiMessage'ı.
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

JunitTestExample.java'yı çalıştırmak için bir test çalıştırıcısı sınıfı oluşturalım

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

Çıktı:

Testi Göz Ardı Etmeden Basit Test Sınıfı Oluşturma

Konsolda bildirimi yazdır:

Junit Merhaba Mesajı yazdırılıyor

Merhaba!Guru99

Haziran Mesajı yazdırılıyor

Guru99

@Ignore ek açıklamasını kullanarak bir test yöntemini yoksayma

Yukarıdaki örnekte bir testi devre dışı bırakmak için görmezden gelme testi oluşturalım. Bunun için atlamak istediğiniz yöntemde @Ignore kullanmanız gerekir.

Hadi test için yapalımJUnitJunitTestExample.java'nın Mesajı()

JunitTestÖrneği.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());					

    }		
}

Çıktı:

Yukarıdaki örneğin çıktısını çalıştırıp doğrulayalım.

Aşağıdaki çıktı bir testin atlandığını (devre dışı bırakıldığını) gösterir; aşağıdaki işaretlere bakın:

Testi Göz Ardı Etmeden Basit Test Sınıfı Oluşturma

Konsolda bildirimi yazdır:

Junit Merhaba Mesajı yazdırılıyor

Merhaba!Guru99

Koşul ile @ yoksayma açıklamasını kullanma

Bir testi nasıl göz ardı edebileceğiniz örneğini ele alalım ve onunla birlikte göz ardı edilme nedenini de tanımlayalım. Yukarıda tartışıldığı gibi, bir neden sağlamak için @Ignore ek açıklamasında neden ifadesini sağlayabileceğiniz isteğe bağlı bir parametreniz vardır.

JunitTestÖrneği.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());					

    }		
}		

Çıktı:

Yukarıdaki ile aynı.

@Ignore ek açıklamasını kullanan tüm test yöntemlerini göz ardı edin.

Yukarıda tartışıldığı gibi sınıftaki tüm testleri yok saymak için sınıf düzeyinde @Ignore açıklamasını kullanmanız gerekir.

Tüm testlerin nasıl göz ardı edileceğini anlamak için yukarıdaki örneği değiştirelim:

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

    }		
}		

Çıkış:

@Ignore Ek Açıklamasını Kullanarak Test Yöntemlerini Yoksay

Konsolda bildirimi yazdır:

Her iki test de sınıf düzeyinde @Ignore kullanılarak atlandığından, konsolda hiçbir ifade yazdırılmayacaktır.

SSS

Bir test yöntemini veya sınıfını atlar. Yine de raporlarda atlanmış olarak gösterilir.

Evet. Yapay zeka, başarısızlık geçmişini analiz ederek riskli adayları belirler.

Yapay zeka, commit bağlamından @Ignore("reason") ifadesini ekler.

@Disabled, ayrıca @DisabledOnOs ve @EnabledOnJre.

Evet. Geçti veya kaldı olarak işaretlenmedi, atlandı olarak işaretlendi.

@DisabledOnO(OS.WINDOWS) içinde JUnit 5.

Evet. Borç biriktiriyorlar; her yeni sürümü yeniden gözden geçiriyorlar.

Evet. Sınıf bildiriminin üstündeki @Ignore ifadesini dikkate almayın.

Bu yazıyı şu şekilde özetleyin: