🧪 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ı