Unit Testing: JUnit 5 ile Test Driven Development (TDD) Giriş

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
Unit Testing: JUnit 5 ve TDD Dünyasına Giriş



1. Unit Test (Birim Testi) Nedir?​


Bir uygulamanın en küçük parçalarını (genellikle tek bir metodun işlevini) diğer parçalardan bağımsız olarak test etmeye denir.

Hızlıdır: Saniyeler içinde binlerce test çalışabilir.

Güven Verir: Kodda bir değişiklik yaptığınızda (Refactoring), eski özelliklerin bozulmadığından emin olursunuz.

Dokümantasyon Sağlar: Test kodları, o metodun nasıl çalışması gerektiğini gösteren canlı birer kullanım kılavuzudur.
Getty Images

2. JUnit 5 Temel Notasyonları​


JUnit 5 (Jupiter), testlerimizi yönetmek için çeşitli notasyonlar sunar:

NotasyonAçıklama
@TestBir metodun test metodu olduğunu belirtir.
@BeforeEachHer test metodundan önce bir kez çalışır (Örn: Hazırlık işlemleri).
@AfterEachHer test metodundan sonra bir kez çalışır (Örn: Temizlik).
@DisplayNameTest sonucunda görünecek anlaşılır bir isim verir.
@DisabledTestin geçici olarak çalıştırılmamasını sağlar.

3. Assertions (İddialar): Sonucu Kontrol Etmek​


Testin geçip geçmediğini belirlemek için beklenen değer ile gerçek değeri karşılaştırırız.

Java:
import static org.junit.jupiter.api.Assertions.*;

@Test
void toplamaTesti() {
HesapMakinesi hm = new HesapMakinesi();
int sonuc = hm.topla(2, 3);

assertEquals(5, sonuc, "2 + 3 sonucu 5 olmalıydı!");
assertTrue(sonuc > 0);
assertNotNull(hm);

}

4. TDD (Test Driven Development) Nedir?​


TDD, kod yazma sürecini tersine çevirir. Mantık şudur: Önce testi yaz, sonra bu testi geçecek kadar kod yaz.

TDD Döngüsü (Red - Green - Refactor)​


RED (Kırmızı): Henüz kod yazılmadığı için başarısız olacak bir test yazılır.

GREEN (Yeşil): Testin geçmesini sağlayacak en basit kod yazılır.

REFACTOR (Düzenle): Kodun işlevini bozmadan yapısı iyileştirilir, temizlenir.

5. Neden TDD Kullanmalıyız?​


Daha Temiz Tasarım: Test edilebilir kod yazmaya odaklandığınız için kodunuz daha modüler olur.

Hata Ayıklama (Debug) Azalır: Hataları kod yazılırken yakalarsınız.

Kapsam (Coverage): Yazdığınız her satır kodun bir karşılığı (testi) olduğundan emin olursunuz.



Sonuç

Birim testleri yazmak başta "zaman kaybı" gibi görünse de, uzun vadede projenizi ayakta tutan en büyük güçtür. TDD ise sizi hata yapmaktan koruyan bir zırh gibidir. JUnit 5 ile tanıştığına göre, artık yazdığın kodun doğruluğunu başkalarına değil, testlerine kanıtlayabilirsin.
 
Geri
Üst