JUnit Beklenen İstisna Testi: @Test(beklenen)
JUnit istisnayı izleme ve kodun beklenen istisnayı fırlatıp fırlatmadığını kontrol etme olanağı sağlar.
Junit4, istisna testi için kolay ve okunabilir bir yol sağlar;
- @test ek açıklamasının isteğe bağlı parametresi (beklenen) ve
- Bilginin takibi için “fail()” kullanılabilir.
Süre Test yapmak istisna, isteğe bağlı parametrede sağladığınız istisna sınıfını sağlamanız gerekir. @test ek açıklaması aynı. Bunun nedeni, kullandığınız yöntemden bir istisna beklemenizdir. Birim Testi, aksi takdirde bizim JUnit test başarısız olur.
Örnek@Test(beklenen=IllegalArgumentException.class)
“Beklenen” parametresini kullanarak testimizin oluşturabileceği istisna adını belirleyebilirsiniz. Yukarıdaki örnekte, “ kullanıyorsunuzYasadışıTartışmaİstisnası” geliştiricinin izin verilmeyen bir argüman kullanması durumunda test tarafından atılacaktır.
@test(beklenen) kullanımına örnek
Bir istisna oluşturarak istisna testini anlayalım. Java bir istisna atan bir yönteme sahip sınıf. Bunu bir test sınıfında ele alacak ve test edeceksiniz. JUnitMessage.java, kullanıcı tarafından alınan girdiye dayalı olarak basitçe matematiksel bir işlem yapan bir yönteme sahiptir. Herhangi bir yasadışı argüman girilirse, “ArithmeticException” fırlatır. Aşağıya bakın:
package guru99.junit; public class JUnitMessage{ private String message; public JUnitMessage(String message) { this.message = message; } public void printMessage(){ System.out.println(message); int divide=1/0; } public String printHiMessage(){ message="Hi!" + message; System.out.println(message); return message; } }
Kod Açıklaması:
- Kod Satırı 7: Alan başlatmayla parametreli bir kurucu oluşturma.
- Kod Satırı 11-14: Matematiksel işlemler için bir yöntem oluşturma.
- Kod Satırı 18: Mesaj yazdırmak için başka bir yöntem oluşturma.
- Kod Satırı 20: Bir mesajı yazdırmak için yeni bir dize oluşturma.
- Kod Satırı 21: 20. satırda oluşturulan yeni mesajın yazdırılması.
İstisnayı doğrulamak için yukarıdaki Java sınıfı için bir test sınıfı oluşturalım.
Aşağıdaki test sınıfından birim testine istisna (burada ArithmeticException) yukarıdaki Java sınıfından atılıyor:
AirthematicTest.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class AirthematicTest { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage(){ System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage(){ message="Hi!" + message; System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } }
Kod Açıklaması:
- Kod Satırı 13: Testimizi oluşturmak için @Test ek açıklamasını kullanma. Yukarıdaki sınıf yöntemini uyguladığınızda, matematiksel bir işlem başlatılacaktır. Burada Aritmetik İstisna bekleniyor, bu nedenle bunu @Test'te bir parametre olarak listeliyorsunuz.
- Kod Satırı 17: printMessage()'ı çağırma JUnitMesaj.java
- Kod Satırı 18: HI mesajını yazdırmak için başka bir yöntem oluşturuluyor.
Bu test sınıfını yürütürseniz, test yöntemi tanımlanan her parametreyle yürütülür. Yukarıdaki örnekte test yöntemi beş kez yürütülür.
Bunu uygulayalım ve sonucu doğrulayalım. Yürütülecek test çalıştırıcısı sınıfının altına bakın JunitTestÖrneği.java
Çıktı:
Aşağıda belirtildiği gibi hiçbir arıza izi olmadan başarılı testi gösteren çıktı:
ÖZET
- İstisna testi, kullanıma sunulan özel bir özelliktir. JUnit4. Bu eğitimde istisnaların nasıl test edileceğini öğrendiniz. JUnit @test kullanarak (hariç)
- Junit, istisnayı izleme ve ayrıca kodun istisna atıp atmadığını kontrol etme olanağı sağlar
- İstisna testi için kullanabilirsiniz
- @test ek açıklamasının isteğe bağlı parametresi (beklenen) ve
- Bilginin takibi için “fail()” kullanılabilir.