Bazen kodlama tam olarak yapılmadığından bir yöntem / kod veya Test Senaryosu yürütmemeniz gerekebilir. Bu özel test için JUnit , testi atlamak için @Ignore ek açıklaması sağlar .
Bu eğitimde öğreneceksiniz-
- JUnit @Ignore test açıklaması nedir
- Junit Test Örneği - Yoksay
- Bir testi göz ardı etmeden basit bir test sınıfı oluşturmak
- @Ignore ek açıklamasını kullanarak bir test yöntemini yoksayın
- @ Kullanarak ek açıklamayı Koşul ile yoksay
- @Ignore açıklamasını kullanan tüm test yöntemlerini yok sayın.
JUnit @Ignore test açıklaması nedir
@Ignore test açıklaması, derleme hatasını atlamak için belirli testleri veya test grubunu yok saymak için kullanılır.
@Ignore ek açıklaması aşağıdaki gibi iki senaryoda kullanılabilir:
- Bir test yöntemini yok saymak istiyorsanız, @Ignore'u @Test ek açıklamasıyla birlikte kullanın.
- Sınıfın tüm testlerini yok saymak istiyorsanız, sınıf düzeyinde @Ignore açıklamasını kullanın.
@Ignore annotation tarafından sağlanan isteğe bağlı parametrede bir testi devre dışı bırakma nedenini sağlayabilirsiniz.
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, @Ignore açıklamasını kaldırarak basitçe etkinleştirebilirsiniz .
Junit Test Örneği - Yoksay
Yukarıdaki tanımda tartışıldığı gibi, testin bir testini veya grubunu yok saymak için @Ignore açıklamasını kullanabilirsiniz.
Bunu basit bir örnekle ve aşağıda verilen senaryolarda anlayalım:
- Bir testi göz ardı etmeden basit bir test sınıfı oluşturmak.
- @Ignore açıklamasını kullanan bir test yöntemini yok sayın.
- @Ignore ek açıklamasını kullanan bir test yöntemini uygun nedenlerle yok sayın.
- @Ignore açıklamasını kullanarak tüm test yöntemlerini yok sayın.
Bir testi göz ardı etmeden basit bir test sınıfı oluşturmak
İki tür mesaj yazdıran basit bir Java sınıfı oluşturalım.
- İlk yöntem basit bir mesaj yazdırır ve
- İkinci yöntem bir "merhaba" mesajı yazdırır
JUnitMessage.java
paket guru99.junit;public class JUnitMessage {private String mesajı;public JUnitMessage (Dize mesajı) {this.message = mesaj;}public String printMessage () {System.out.println (mesaj);geri dönüş mesajı;}public String printHiMessage () {message = "Merhaba!" + mesaj;System.out.println (mesaj);geri dönüş mesajı;}}
JunitTestExample.java
JUnitMessage.java'yı test etmek için bir JUnit test sınıfı oluşturalım.
Bu JUnit test sınıfında,
- "TestJUnitMessage ()" adlı ilk test, yukarıdaki sınıfın "printMessage ()" yöntemini test eder.
- Benzer şekilde, "testJUnitHiMessage" adlı ikinci test, yukarıdaki sınıfın "testJUnitHiMessage" sını test eder.
paket guru99.junit;statik org.junit.Assert.assertEquals içe aktar;import org.junit.Test;public class JunitTestExample {public String mesajı = "Guru99";JUnitMessage junitMessage = yeni JUnitMessage (mesaj);@Ölçekpublic void testJUnitMessage () {System.out.println ("Önemsiz Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printMessage ());}@Ölçekpublic void testJUnitHiMessage () {message = "Merhaba!" + mesaj;System.out.println ("Önemsiz Merhaba Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printHiMessage ());}}
TestRunner.java
JunitTestExample.java'yı yürütmek için bir test çalıştırıcı sınıfı oluşturalım
paket 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) {Sonuç sonucu = JUnitCore.runClasses (JunitTestExample.class);for (Hata hatası: result.getFailures ()) {System.out.println (fail.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Çıktı:
Konsolda yazdırma beyanı:
Junit Merhaba Mesajı yazdırılıyor
Merhaba! Guru99
Önemsiz Mesaj yazdırılıyor
Guru99
@Ignore ek açıklamasını kullanarak bir test yöntemini yoksayın
Yukarıdaki örnekte bir testi devre dışı bırakmak için yok sayma testi oluşturalım. Bunun için yöntemde @Ignore kullanmanız gerekiyor, atlamak istiyorsunuz.
Bunu JunitTestExample.java testJUnitMessage () için yapalım
JunitTestExample.java
paket guru99.junit;statik org.junit.Assert.assertEquals içe aktar;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {public String mesajı = "Guru99";JUnitMessage junitMessage = yeni JUnitMessage (mesaj);@Aldırmamak@Ölçekpublic void testJUnitMessage () {System.out.println ("Önemsiz Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printMessage ());}@Ölçekpublic void testJUnitHiMessage () {message = "Merhaba!" + mesaj;System.out.println ("Önemsiz Merhaba Mesaj yazdırılıyor");assertEquals (mesaj, 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ğıda işaretlendiği gibi bakın:
Konsolda yazdırma beyanı:
Junit Merhaba Mesajı yazdırılıyor
Merhaba! Guru99
@ Kullanarak ek açıklamayı Koşul ile yoksay
Bir testi nasıl göz ardı edeceğimizi örnek alalım ve bununla birlikte yok sayma nedenini tanımlayalım. Yukarıda tartışıldığı gibi, bir neden belirtmek için @Ignore ek açıklamasında neden ifadesini sağlayabileceğiniz isteğe bağlı bir parametreniz vardır.
JunitTestExample.java
paket guru99.junit;statik org.junit.Assert.assertEquals içe aktar;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {public String mesajı = "Guru99";JUnitMessage junitMessage = yeni JUnitMessage (mesaj);@Ignore ("henüz hazır değil, lütfen dikkate almayın.")@Ölçekpublic void testJUnitMessage () {System.out.println ("Önemsiz Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printMessage ());}@Ölçekpublic void testJUnitHiMessage () {message = "Merhaba!" + mesaj;System.out.println ("Önemsiz Merhaba Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printHiMessage ());}}
Çıktı:
Yukarıdaki gibi.
@Ignore açıklamasını kullanan tüm test yöntemlerini yok sayın.
Sınıftaki tüm testleri yok saymak için yukarıda tartışıldığı gibi, sınıf düzeyinde @Ignore açıklamasını kullanmanız gerekir.
Tüm testleri nasıl göz ardı edeceğinizi anlamak için yukarıdaki örneği değiştirelim:
paket guru99.junit;statik org.junit.Assert.assertEquals içe aktar;import org.junit.Ignore;import org.junit.Test;@Aldırmamakpublic class JunitTestExample {public String mesajı = "Guru99";JUnitMessage junitMessage = yeni JUnitMessage (mesaj);@Ölçekpublic void testJUnitMessage () {System.out.println ("Önemsiz Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printMessage ());}@Ölçekpublic void testJUnitHiMessage () {message = "Merhaba!" + mesaj;System.out.println ("Önemsiz Merhaba Mesaj yazdırılıyor");assertEquals (mesaj, junitMessage.printHiMessage ());}}
Çıktı :
Konsolda yazdırma beyanı:
Her iki test de sınıf düzeyinde @Ignore kullanılarak atlandığından, konsolda hiçbir ifade yazdırılmaz.
Özet:
Bu öğreticide, @Ignore notunu kullanarak tek bir testi, test grubunu veya tüm testleri nasıl göz ardı edeceğinizi öğrendiniz.
@Ignore ek açıklaması aşağıdaki gibi iki senaryoda kullanılabilir:
- Bir test yöntemini yok saymak istiyorsanız, @Ignore'u @Test ek açıklamasıyla birlikte kullanın.
- Sınıfın tüm testlerini yok saymak istiyorsanız, sınıf düzeyinde @Ignore açıklamasını kullanın.
Ayrıca, diğer geliştiricilerin anlaşılması için nasıl bir ifade sunacağınızı, belirli bir testin neden devre dışı bırakıldığını öğrendiniz.