Assertions
- Java kursu
- İleri seviye
- Ders 44/82
- 5 dk
assertEquals ve assertTrue ile iddiaları öğrenirsin.
Assertions
Assertions sınıfı, test sonucunu doğrulayan statik yöntemler sunar. En sık kullanılanları assertEquals, assertTrue, assertFalse ve assertNull'dır.
import static org.junit.jupiter.api.Assertions.*;
assertEquals(5, result);
assertTrue(result > 0);
assertNull(object);İlk bağımsız değişken beklenen değeri, ikincisi gerçek değeri alır. Eşleşme yoksa test başarısız olur ve çerçeve hatayı raporlar. assertThrows ise bir istisnanın fırlatılmasını bekler; bu, hata yollarını test etmek için kullanılır.
assertThrows
Bir yöntemin istisna fırlatmasını bekleyen testler için assertThrows kullanılır. İlk bağımsız değişken beklenen istisna sınıfı, ikincisi ilgili kodu çalıştıran lambda'dır.
assertThrows(ArithmeticException.class, () -> {
int quotient = 10 / 0;
});Eğer istisna fırlatılırsa test geçer; fırlatılmazsa başarısız olur. Bu, negatif senaryoları doğrulamanın güvenli yoludur ve try/catch yazmaktan daha kısadır. Döndürülen istisna nesnesi üzerinde de ek doğrulama yapılabilir.
Uygulama Divider için assertion yaz
Bir Divider sınıfı tanımla; divide(int a, int b) yöntemi a / b döndürsün. DividerTest sınıfında @Test ile işaretli testDivide yöntemi yaz; assertEquals(5, d.divide(10, 2)) ile doğrula. Ayrıca assertThrows(ArithmeticException.class, () -> d.divide(10, 0)) çağrısı ekle. Bir main metodu ekle ve divide(10, 2) sonucunu yazdır.
Başlangıç kodu
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
// Divider sınıfını tanımla (divide yöntemi bölümü döndürür)
// testDivide yöntemini test annotation'ı ile yaz; assertEquals ve assertThrows çağır
// main metodu ekle ve divide(10, 2) sonucunu yazdırÖrnek çözüm
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class Divider {
int divide(int a, int b) {
return a / b;
}
}
class DividerTest {
@Test
void testDivide() {
Divider d = new Divider();
assertEquals(5, d.divide(10, 2));
assertThrows(ArithmeticException.class, () -> d.divide(10, 0));
}
public static void main(String[] args) {
Divider d = new Divider();
System.out.println(d.divide(10, 2));
}
}Beklenen çıktı
5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 assertTrue çağrısını tamamla
int result = 7;
____(result > 0);
int result = 7;
assertTrue(result > 0);
Açıklama: assertTrue, koşul true olduğunda testi geçer sayar.
2 assertThrows'ın ilk bağımsız değişkeni ne olmalıdır?
- Hata iletisi metni
- Lambda ifadesi
- Doğrulanacak değer
- Beklenen istisna sınıfı Doğru cevap
Açıklama: İlk bağımsız değişken beklenen istisna sınıfıdır (ör. ArithmeticException.class).
3 Assertion'ları görevine eşleştir
| Kavram | Anlamı |
|---|---|
assertEquals |
Değer eşitliği |
assertTrue |
Koşul doğru mu |
assertNull |
Değer null mu |
assertThrows |
İstisna bekler |