JUnit @Örnekle Test 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.

ÖZET

Bu eğitimde @Ignore ek açıklamasını kullanarak tek bir testi, test grubunu veya tüm testleri nasıl yok sayacağınızı öğrendiniz.

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

Ayrıca diğer geliştiricilerin belirli bir testin neden devre dışı bırakıldığını anlamalarını sağlayacak bir beyanın nasıl sağlanacağını da öğrendiniz.

Devamını Oku readmore