CodeBlanks Logo Icon CodeBlanks

Assertions

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

Main.java
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

Main.java
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

Soru
int result = 7;
____(result > 0);
Cevap
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

İleri seviye bölümündeki tüm dersler