@DisplayName
- Java kursu
- İleri seviye
- Ders 47/82
- 5 dk
@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
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
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
@____("Kullanıcı oturum açabilmeli")
@Test
void testLogin() {
// ...
}
@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 |