CodeBlanks Logo Icon CodeBlanks

@DisplayName

@DisplayName ile test adlandırma öğrenirsin.

@DisplayName

@DisplayName, bir test sınıfına veya yöntemine okunabilir bir ad verir. Varsayılan ad yöntem adıdır; bu annotation ile daha anlamlı bir etiket gösterilirsin.

@DisplayName("Sepete ürün ekleme")
@Test
void testAdd() {
    // ...
}

IDE ve raporlarda bu ad görünür. Bu, test sonuçlarını okumayı kolaylaştırır; teknik ad yerine iş açısından anlamlı bir metin kullanılır. Emojis ve özel karakterler de desteklenir; ancak profesyonel projelerde sade metin tercih edilir.

@DisplayNameGeneration

Sınıf düzeyinde @DisplayNameGeneration ile tüm test adları için otomatik bir biçim belirlenebilir. Bu, her yönteme tek tek @DisplayName yazmaktan kurtarır.

@DisplayNameGeneration(ReplaceUnderscores.class)
class CartTest {
    @Test
    void adds_item_to_cart() { }
}

Alt çizgiler boşluğa dönüşür; test raporunda "adds item to cart" görünür. Bu, anlamlı adlar elde etmenin otomatik yoludur. Ekipler, ortak bir biçim kararı verip tutarlılık sağlayabilir.

Uygulama Cart testine @DisplayName ekle

Bir CartTest sınıfı tanımla. List<String> cart alanı tanımla. @DisplayName("Sepete ürün ekler") ve @Test ile işaretli testAdd yöntemi yaz; cart.add("ekmek") çağır ve assertEquals(1, cart.size()) ile doğrula. Bir main metodu ekle, sepete bir öğe ekle ve size() sonucunu yazdır.

Başlangıç kodu

Main.java
import org.junit.jupiter.api.*;
import java.util.*;

// CartTest sınıfını tanımla

// ad annotation'ı ve test annotation'ı ile testAdd yaz

// main metodu ekle ve cart.size() sonucunu yazdır

Örnek çözüm

Main.java
import org.junit.jupiter.api.*;
import java.util.*;

class CartTest {
    List<String> cart = new ArrayList<>();

    @DisplayName("Sepete ürün ekler")
    @Test
    void testAdd() {
        cart.add("ekmek");
        assertEquals(1, cart.size());
    }

    public static void main(String[] args) {
        CartTest t = new CartTest();
        t.cart.add("ekmek");
        System.out.println(t.cart.size());
    }
}

Beklenen çıktı

1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 DisplayName çağrısını tamamla

Soru
@____("Kullanıcı oturum açabilmeli")
@Test
void testLogin() {
    // ...
}
Cevap
@DisplayName("Kullanıcı oturum açabilmeli")
@Test
void testLogin() {
    // ...
}

Açıklama: @DisplayName ile okunabilir ad verilir.

2 @DisplayName ne işe yarar?

  • Test yöntemini çalıştırır
  • Testi girdilerle çalıştırır
  • Teste okunabilir bir ad verir Doğru cevap
  • Testten önce kod çalıştırır

Açıklama: @DisplayName, teste okunabilir bir ad verir.

3 Annotation'ları görevine eşleştir

Kavram Anlamı
@DisplayName Okunabilir ad verir
@DisplayNameGeneration Sınıf için ad biçimi
@Test Test yöntemini işaretler
@Disabled Testi atlatır

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