UNIT TESTING: PARAMETERIZED JUNIT TESTS EĞİTİMİ

Tek testle onlarca senaryoyu doğrulayın

JUnit 5 @ParameterizedTest ile veri odaklı, bakımı kolay ve kapsamlı birim testleri

Unit Testing: Parameterized JUnit Tests Eğitimi, Java geliştiricilerine JUnit 5 ile veri odaklı birim testi yazmayı öğretir. Program temel assertion ve yaşam döngüsü anotasyonlarından başlayıp @ParameterizedTest ile ValueSource, CsvSource, MethodSource ve Arg…

3 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

JUnit 5 temellerinden parametreli testlere, Mockito'dan kapsam ölçümüne

Unit Testing: Parameterized JUnit Tests Eğitimi, Java geliştiricilerine JUnit 5 ile veri odaklı birim testi yazmayı öğretir. Katılımcılar temel assertion ve yaşam döngüsü anotasyonlarından başlayıp @ParameterizedTest ile aynı mantığı onlarca girdi kümesinde çalıştırmayı uygular. @ValueSource, @CsvSource, @MethodSource ve @ArgumentsSource veri kaynakları, ArgumentConverter ile tip dönüşümü, Mockito ile bağımlılık izolasyonu ve JaCoCo ile kapsam ölçümü uygulamalı işlenir.

Süre ve Format

3 Gün. Her gün dört modül; her konu gerçek bir Java sınıfı üzerinde test yazma, kırmızı-yeşil döngüsü ve kapsam raporu inceleme atölyeleriyle pekiştirilir.

Seviye

Orta Seviye — Java bilen geliştiriciler için JUnit 5 ile veri odaklı birim testi yazımı

Öğrenme Metodu

Örnek bir Java servis katmanına testler yazılır; parametreli senaryolar çalıştırılır, Mockito ile taklitlenir ve JaCoCo raporu incelenir.

Neden Bu Eğitim?

🧪Kopya testten kurtulun

Her girdi için ayrı test metodu yazmak yerine @ParameterizedTest ile tek metotta onlarca senaryoyu çalıştırıp kod tekrarını kaldırırsınız.

📊Daha yüksek kapsam

Sınır değerleri ve eşdeğerlik sınıflarını veri kaynaklarıyla besleyerek az kodla daha fazla yürütme yolunu kapsayan testler elde edersiniz.

🔧Bakımı kolay testler

Test verisini @CsvFileSource veya @MethodSource ile koddan ayırarak yeni senaryo eklemeyi tek satır veri eklemek kadar basitleştirirsiniz.

Anahtar Konular

junit 5 eğitimiparameterized junit testsbirim testi eğitimiunit test eğitimijunit parametreli testjava test eğitimimockito eğitimijacoco kod kapsamıveri odaklı testjunit kursu
“İyi bir birim testi, kodun ne yaptığını değil ne yapması gerektiğini anlatır. Parametreli test ise bunu tek metotta onlarca kez söyler.”

Ön Koşullar

Programdan en iyi verimi almak için gereken temel bilgi ve ortam

1
Java temeli

Sınıf, metot, koleksiyon ve istisna (exception) gibi temel Java kavramlarını yazabilecek düzeyde bilgi beklenir.

2
Birim testi fikri

Birim testinin ne olduğu ve neden yazıldığına dair genel bir farkındalık faydalıdır; derinlemesine deneyim gerekmez.

3
Build aracı

Maven veya Gradle ile bağımlılık ekleme ve test çalıştırma düzeyinde temel bir aşinalık yararlı olur.

4
Geliştirme ortamı

IntelliJ IDEA veya Eclipse kurulu, JDK 17+ ve test bağımlılıklarını çekebilen bir geliştirme makinesi gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı JUnit 5 bağımlılıklarını kurar, test yaşam döngüsünü ve assertion API'sini öğrenir, ilk birim testlerini yazarak kırmızı-yeşil-yeniden düzenle döngüsünü uygular.
Modül 1
JUnit 5 Mimarisi ve Kurulum
  • JUnit Platform, Jupiter ve Vintage katmanlarının rolü
  • Maven ve Gradle ile junit-jupiter bağımlılığı ekleme
  • @Test anotasyonuyla ilk test metodunun yazımı
  • JUnit 4'ten JUnit 5'e temel anotasyon farkları
  • IDE üzerinden test koşumu ve sonuç okuma
  • Test dizin yapısı ve adlandırma yaklaşımları
Modül 2
Test Yaşam Döngüsü Anotasyonları
  • @BeforeEach ve @AfterEach ile her test hazırlığı
  • @BeforeAll ve @AfterAll ile tek seferlik kurulum
  • Test örneği yaşam döngüsü (PER_METHOD, PER_CLASS)
  • @DisplayName ile okunabilir test adları verme
  • @Disabled ile testi geçici olarak devre dışı bırakma
  • @Nested ile ilişkili testleri gruplama
Modül 3
Assertion ve Assumption API
  • assertEquals, assertTrue ve assertNull kullanımı
  • assertThrows ile beklenen istisnanın doğrulanması
  • assertAll ile bağımsız doğrulamaların gruplanması
  • assertTimeout ile yürütme süresi kontrolü
  • assumeTrue ile koşullu test yürütme (assumption)
  • AssertJ ile akıcı (fluent) assertion yazımı
Modül 4
İyi Birim Testi İlkeleri
  • FIRST ilkeleri ve hızlı, yalıtık test tasarımı
  • Arrange-Act-Assert (AAA) deseniyle test kurgusu
  • Tek davranışa odaklı küçük testler yazma
  • Test adlandırmada niyet-odaklı yaklaşım
  • Kırılgan testlerden kaçınma ve deterministiklik
  • Testlerin canlı dokümantasyon olarak değeri
Günün hedefiKatılımcı @ParameterizedTest anotasyonunu ve tüm argüman kaynaklarını uygular; sınır değer ve eşdeğerlik verilerini koddan ayırarak aynı mantığı çok sayıda girdiyle doğrulayan testler yazar.
Modül 1
@ParameterizedTest Temelleri
  • junit-jupiter-params bağımlılığının eklenmesi
  • @ParameterizedTest ile test metodunun işaretlenmesi
  • Argüman sayısıyla metot parametrelerinin eşleşmesi
  • name niteliğiyle her iterasyona okunur ad verme
  • Tek testin çok iterasyonlu rapor çıktısını okuma
  • Parametreli testin ne zaman tercih edileceği
Modül 2
Basit Veri Kaynakları
  • @ValueSource ile tekil değer dizileri besleme
  • @NullSource ve @EmptySource ile sınır girdileri
  • @NullAndEmptySource bileşik anotasyonu
  • @EnumSource ile enum sabitlerini otomatik besleme
  • @EnumSource names ve mode ile seçmeli enum testi
  • Basit kaynakların sınırlarının kavranması
Modül 3
CSV Tabanlı Veri Kaynakları
  • @CsvSource ile satır satır çok argümanlı veri
  • Ayraç (delimiter) ve tırnak yönetimi
  • nullValues ile boş hücrelerin null olarak okunması
  • @CsvFileSource ile harici CSV dosyasından besleme
  • Beklenen çıktı ile girdinin aynı satırda eşlenmesi
  • Büyük test veri kümelerinin dosyada yönetimi
Modül 4
Metot Kaynakları ve Dönüşüm
  • @MethodSource ile Stream<Arguments> üretimi
  • Arguments.of ile karmaşık argüman kümeleri kurma
  • @ArgumentsSource ile özel ArgumentsProvider yazımı
  • ArgumentConverter ile tek argüman tip dönüşümü
  • ArgumentsAggregator ile argümanları nesneye toplama
  • @ConvertWith ve @AggregateWith kullanımı
Günün hedefiKatılımcı Mockito ile bağımlılıkları taklitleyip birim testi yalıtır, dinamik ve tekrarlı testler yazar, JaCoCo ile kapsamı ölçer ve testleri CI hattında koşarak sürekli geri bildirim kurar.
Modül 1
Mockito ile Bağımlılık İzolasyonu
  • mock ve @Mock ile sahte bağımlılık oluşturma
  • when-thenReturn ile davranış kurgulama (stubbing)
  • verify ile etkileşimin doğrulanması
  • ArgumentCaptor ile çağrı argümanının yakalanması
  • @InjectMocks ile test edilen sınıfa enjeksiyon
  • Parametreli testlerle mock davranışının birleştirilmesi
Modül 2
Dinamik ve Tekrarlı Testler
  • @RepeatedTest ile testin defalarca koşturulması
  • RepetitionInfo ile iterasyon bilgisine erişim
  • @TestFactory ile çalışma zamanı dinamik testler
  • DynamicTest.dynamicTest ile üretilen test akışları
  • Parametreli ve dinamik testin karşılaştırılması
  • Üretilen testlerin raporda okunması
Modül 3
Kapsam Ölçümü ve Kalite
  • JaCoCo ile satır ve dal (branch) kapsamı ölçümü
  • Kapsam raporunun HTML çıktısının yorumlanması
  • Kapsam eşiğinin build'de zorunlu kılınması
  • Yüksek kapsamın kalite garantisi olmadığının kavranması
  • Mutation testing (PIT) ile test gücü değerlendirmesi
  • Anlamlı assertion ile kapsam tuzaklarından kaçınma
Modül 4
CI Entegrasyonu ve Pratikler
  • Maven Surefire ile testlerin build'de koşturulması
  • GitHub Actions veya Jenkins ile test otomasyonu
  • Test etiketleriyle (@Tag) seçmeli koşum
  • Başarısız testte build'in kırılması (fail fast)
  • Test raporu ve kapsamın yapı artefaktı olarak yayını
  • Hızlı geri bildirim için test sürelerinin izlenmesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
JUnit 5 hakimiyeti

Jupiter mimarisini, yaşam döngüsü anotasyonlarını ve assertion API'sini kullanarak temiz ve okunur birim testleri yazarsınız.

✅
Parametreli test yazımı

@ParameterizedTest ile aynı mantığı onlarca girdiyle çalıştırıp kod tekrarını azaltan veri odaklı testler kurarsınız.

✅
Veri kaynağı seçimi

ValueSource, CsvSource, CsvFileSource ve MethodSource arasından senaryoya uygun veri kaynağını doğru seçersiniz.

✅
Tip dönüşümü

ArgumentConverter ve ArgumentsAggregator ile ham test verisini zengin nesnelere dönüştürerek karmaşık senaryoları test edersiniz.

✅
Bağımlılık izolasyonu

Mockito ile dış bağımlılıkları taklitleyip test edilen birimi yalıtarak hızlı ve deterministik testler elde edersiniz.

✅
Dinamik testler

@RepeatedTest ve @TestFactory ile çalışma zamanında üretilen tekrarlı ve dinamik test akışları oluşturabilirsiniz.

✅
Kapsam ölçümü

JaCoCo ile satır ve dal kapsamını ölçer, raporu yorumlar ve mutation testing ile testlerin gerçek gücünü değerlendirirsiniz.

✅
CI entegrasyonu

Testleri Maven ve CI hattına bağlayıp başarısız durumda build'i kırarak her commit'te sürekli geri bildirim kurarsınız.

Kimler İçin Uygundur?

  • Java ile uygulama geliştiren backend ve full-stack yazılımcılar
  • JUnit 4'ten JUnit 5'e geçmek isteyen geliştiriciler
  • testlerini veri odaklı hale getirerek kod kapsamını artırmak isteyen ekipler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java ile uygulama geliştiren backend ve full-stack yazılımcılar, JUnit 4'ten JUnit 5'e geçmek isteyen geliştiriciler ve testlerini veri odaklı hale getirmek isteyen ekipler için uygundur. Java temeli olan herkes katılabilir; ileri test deneyimi gerekmez.
Bu eğitim genel yazılım test eğitiminden farkı nedir?
Bu program manuel test süreçlerine değil, geliştiricinin kod yazarken yazdığı birim testlerine ve özellikle JUnit 5 parametreli testlerine odaklanır. Test yönetimi veya Selenium gibi UI otomasyonu değil, Java kodunun doğruluğunu veri odaklı birim testleriyle doğrulama ele alınır.
Hangi Java sürümü ve araçlar kullanılıyor?
JDK 17 veya üzeri, JUnit 5 (Jupiter), junit-jupiter-params, Mockito, AssertJ ve kapsam için JaCoCo kullanılır. Build aracı olarak Maven veya Gradle, isteğe bağlı olarak mutation testing için PIT ele alınır. Araçlar açık kaynaktır ve kurumun ortamına uyarlanabilir.
Eğitimin süresi ve formatı nedir?
Eğitim üç gün sürer ve her gün dört modülden oluşur. Her konu gerçek bir Java sınıfı üzerinde test yazma, kırmızı-yeşil döngüsü ve kapsam raporu inceleme atölyeleriyle pekiştirilir. Yüz yüze veya online yapılabilir ve kurumun kod tabanına uyarlanabilir.
Eğitim sonunda sertifika veriliyor mu?
Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Bu sertifika tamamlanan modülleri ve uygulamalı test yazma atölyelerini belgeler; kurumsal gruplara özel kod tabanı ve senaryo uyarlaması yapılabilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Unit Testing: Parameterized JUnit Tests Eğitimi Sertifika Kodu DV-2026XX00 Tarih 15.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre3 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Yazılım Test TemelleriSoftware Testing Foundation : Static Testing Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Static Testing Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

ISTQB temel seviye statik test: inceleme türleri, inceleme süreci ve rolleri, walkthrough, inspection, statik analiz araçları ve CI entegrasyonu uygulamalı.

Detayları Gör →
Yazılım Test TemelleriSoftware Testing Foundation : Test Management Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Test Management Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

ISTQB temel seviye test yönetimi: test organizasyonu, test stratejisi, test planı, giriş-çıkış kriterleri, kestirim, izlenebilirlik ve yönetim araçları uygulama

Detayları Gör →
Yazılım Test TemelleriSoftware Testing Foundation : Test Monitoring & Control Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Test Monitoring & Control Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

ISTQB temel seviye test izleme ve kontrol: test metrikleri, ilerleme ve kusur göstergeleri, raporlar, panolar, metrik yorumlama ve kontrol eylemleri uygulamalı.

Detayları Gör →
Yazılım Test TemelleriSoftware Testing Foundation : Test Process Fundamentals Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Test Process Fundamentals Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

ISTQB temel seviye test süreci: test ve kalite kavramları, yedi test prensibi, test psikolojisi, test süreci aktiviteleri, iş ürünleri ve izlenebilirlik uygulam

Detayları Gör →
Yazılım Test TemelleriSoftware Testing Foundation : Test Tool Support Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Test Tool Support Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Test araç kategorileri, otomasyon fayda ve riskleri, araç seçim kriterleri ve pilot proje yaklaşımıyla ISTQB Foundation araç desteği eğitimi.

Detayları Gör →
Yazılım Test TemelleriSoftware Testing Foundation : Test Types & Maintenance Testing Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Test Types & Maintenance Testing Eğitimi

3 günTemelOnline / Yüz Yüze / Hibrit

Fonksiyonel, fonksiyonel olmayan, beyaz kutu, yeniden test, regresyon ve bakım testi ile etki analizini kapsayan ISTQB Foundation test türleri eğitimi.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn