🧪 JUnit5 & TestNG — Test Framework'leri

JUnit5 & TestNG — Test Framework'leri: Bir test framework'ü, testlerini bulan, sırayla çalıştıran, sonuçları raporlayan ve `@BeforeEach`/`@AfterEach` gibi kancalarla kurulum-temi

Bir test framework'ü, testlerini bulan, sırayla çalıştıran, sonuçları raporlayan ve `@BeforeEach`/`@AfterEach` gibi kancalarla kurulum-temizlik yapan bir "otomatik hakem"dir — tıpkı bir yarışta koşucuları sıraya dizen, başlat düdüğünü çalan, bitiş zamanını ölçen ve herkes için aynı kuralı işleten hakem gibi: sen yalnızca testi yazarsın, hakem geri kalan tüm koreografiyi yönetir. Peki testleri düz bir `main` metodunda `if (sonuç != beklenen) System.out.println("hata")` diyerek de çalıştırabiliyorken neden JUnit5/TestNG gerekiyor? Çünkü elle yazılmış kontroller ilk hatada durur, hangi testin geçtiğini/kaldığını raporlamaz ve CI ile entegre olmaz; framework her testi izole çalıştırıp yeşil/kırmızı rapor üretir. JUnit5 modüler ve modern assertion API'siyle öne çıkarken TestNG `@DataProvider` ve gelişmiş paralel çalıştırmada güçlüdür — seçim işverenin stack'ine bağlıdır. QA mühendisi için bu fark somut sonuç doğurur: 50 senaryolu bir regression suite'inde framework her senaryoyu bağımsız raporlar, böylece tek bir kırık test tüm koşumu çökertmez ve gerçekten hangi özelliğin bozulduğunu anında görürsün.

JUnit5 Temel Annotationlar

Micro Lab: Kod yazma

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

TestNG Temel Annotationlar

Adim Adim: Kod yazma

Amaci ve girdiyi belirle

Kritik satiri tamamla

Cikti veya davranisi kontrol et

Hata mesajini kanit olarak oku

Duzeltmeyi tekrar calistir

Kod okuma ve dogrulama akisini sirala.

pom.xml — Maven Bağımlılıkları

pom.xml — JUnit5 + Selenium bağımlılıkları