UNIT TESTING: ADVANCED ANNOTATIONS IN JUNIT EĞİTİMİ

JUnit 5 anotasyonlarında ustalaşın

@Nested, @ParameterizedTest, @MethodSource, @ExtendWith, @TestTemplate ve meta-anotasyonlar

Unit Testing: Advanced Annotations in JUnit Eğitimi, JUnit 5 Jupiter'in ileri anotasyon yeteneklerini derinlemesine işler. Program @Nested ile organizasyonu, @ParameterizedTest ile @ValueSource ve @MethodSource kaynaklarını, @RepeatedTest'i, koşullu çalıştırm…

4 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Yaşam döngüsü ve organizasyon anotasyonlarından özel uzantı ve meta-anotasyon geliştirmeye

Unit Testing: Advanced Annotations in JUnit Eğitimi, JUnit 5 Jupiter'in ileri anotasyon yeteneklerini derinlemesine işler. Katılımcılar @Nested ve @TestInstance ile test organizasyonu, @ParameterizedTest ile @ValueSource ve @MethodSource kaynakları, @RepeatedTest, koşullu çalıştırma anotasyonları, @ExtendWith ve @RegisterExtension ile uzantı mekanizması ve meta-anotasyonlarla özel anotasyon üretimini öğrenir. Eğitim ParameterResolver ile uzantı geliştirmeyle tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; her anotasyon gerçek test sınıfları üzerinde canlı kodlama ve özel uzantı alıştırmalarıyla işlenir.

Seviye

İleri Seviye — JUnit 5 Jupiter'in ileri anotasyonlarını, parametreli testleri ve özel uzantı geliştirmeyi işleyen program

Öğrenme Metodu

Her anotasyon gerçek test senaryoları üzerinde canlı kodlanır; katılımcılar kendi parametreli test ve uzantılarını yazarak pekiştirir.

Neden Bu Eğitim?

🧱Testleri organize edin

@Nested, @DisplayName ve sıralama anotasyonlarıyla karmaşık test sınıflarını okunur, hiyerarşik ve bakımı kolay yapıda düzenlersiniz.

🔁Tekrarı ortadan kaldırın

Parametreli ve tekrarlı testlerle aynı davranışı birçok girdi için tek test metoduyla doğrular, kopyala-yapıştır testlere son verirsiniz.

🧩Çatıyı genişletin

@ExtendWith ve özel uzantılarla JUnit yaşam döngüsüne müdahale eder, ekibinize özel test davranışları ve anotasyonlar üretirsiniz.

Anahtar Konular

junit anotasyon eğitimijunit 5 ileri eğitimiparameterizedtestjunit nested testextendwithjunit uzantı geliştirmemethodsourcetesttemplatejunit kursujava test anotasyonları
“JUnit'in gücü yalnızca test çalıştırmasında değil, anotasyon ve uzantılarla çatıyı kendi ekibinizin diline uyarlayabilmenizdedir.”

Ön Koşullar

Eğitime başlamadan önce faydalı olacak bilgi ve deneyim alanları

1
JUnit 5 deneyimi

@Test, @BeforeEach ve temel assertion'larla düzenli birim testi yazmış olmak bu ileri eğitim için gereklidir.

2
Java anotasyonları

Anotasyonların ne olduğunu ve @Retention, @Target gibi meta-anotasyonları bilmek özel anotasyon üretimini kolaylaştırır.

3
Stream ve koleksiyon

@MethodSource için Stream ve koleksiyon üretebilmek karmaşık parametreli testleri yazmakta avantaj sağlar.

4
Tasarım aşinalığı

Arayüz ve fonksiyonel programlama kavramlarına aşinalık ParameterResolver gibi uzantıları kavramayı kolaylaştırır.

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ı @Nested ile hiyerarşik testler kurar, @TestInstance ve @TestMethodOrder ile yaşam döngüsü ve sırayı yönetir, @DisplayName ve @Tag ile testleri okunur ve gruplanabilir hale getirir.
Modül 1
@Nested ile Hiyerarşik Testler
  • @Nested ile iç içe test sınıfları oluşturma
  • Bağlam (context) başına gruplanmış senaryolar
  • Dış ve iç sınıf yaşam döngüsünün çalışma sırası
  • Given-When-Then yapısını @Nested ile yansıtma
  • Derin iç içe geçmenin okunabilirlik dengesi
  • İlişkili senaryoların mantıksal gruplanması
Modül 2
@TestInstance ve Yaşam Döngüsü
  • Varsayılan PER_METHOD örnek yaşam döngüsü
  • @TestInstance(PER_CLASS) ile paylaşılan örnek
  • PER_CLASS ile non-static @BeforeAll kullanımı
  • Örnek durumunun testler arası paylaşımı riski
  • Durum sızıntısını önlemek için tasarım kararı
  • Yaşam döngüsü seçiminin test hızına etkisi
Modül 3
Test Sıralama Anotasyonları
  • @TestMethodOrder ile sıralama stratejisi seçimi
  • @Order(n) ile açık test sırası belirleme
  • MethodName ve Random sıralayıcıların kullanımı
  • Testler arası bağımlılığın neden kaçınılacağı
  • Sıralı testin uygun olduğu nadir senaryolar
  • Bağımsız test tasarımının korunması
Modül 4
@DisplayName, @Tag ve Okunabilirlik
  • @DisplayName ile anlamlı test başlıkları
  • @DisplayNameGeneration ile otomatik adlandırma
  • Boşluklu ve emoji içeren açıklayıcı adlar
  • @Tag ile testleri kategorilere ayırma
  • Etiketle hızlı/yavaş test takımlarının ayrımı
  • Rapor okunabilirliğinin etiketlerle artırılması
Günün hedefiKatılımcı @ParameterizedTest ile aynı davranışı birçok girdi için doğrular, @ValueSource, @CsvSource, @MethodSource ve @EnumSource kaynaklarını kullanır ve @RepeatedTest ile tekrarı öğrenir.
Modül 1
@ParameterizedTest Temelleri
  • @ParameterizedTest ile tekrarın tek metoda indirilmesi
  • Her argüman kümesi için ayrı çalışma
  • name niteliğiyle anlamlı test adı üretme
  • Parametreli test için gerekli bağımlılıklar
  • Argüman sayısı ve metot imzasının eşlenmesi
  • Başarısız argüman kümesinin raporda görünmesi
Modül 2
Basit Veri Kaynakları
  • @ValueSource ile tek boyutlu değer dizisi
  • @EnumSource ile enum değerlerinin kapsanması
  • @EnumSource names/mode ile filtreleme
  • @NullSource ve @EmptySource ile sınır değerler
  • @NullAndEmptySource bileşik kullanımı
  • Basit kaynakların uygun olduğu senaryolar
Modül 3
CSV ve Metot Tabanlı Kaynaklar
  • @CsvSource ile satır içi çok sütunlu veri
  • @CsvFileSource ile dış dosyadan veri okuma
  • @MethodSource ile Stream<Arguments> üretimi
  • Arguments.of ile karmaşık nesne kümeleri
  • @ArgumentsSource ile özel sağlayıcı yazma
  • Argüman dönüştürücü ve toplayıcı (aggregator) kullanımı
Modül 4
@RepeatedTest ile Tekrarlama
  • @RepeatedTest(n) ile testi n kez çalıştırma
  • RepetitionInfo ile mevcut tekrar bilgisine erişim
  • Tekrar adı şablonunun özelleştirilmesi
  • Kararsız (flaky) testi tespit için tekrarlama
  • Rastgelelik içeren senaryoların sınanması
  • Tekrarın performans testi olmadığının bilinci
Günün hedefiKatılımcı ortam ve sistem koşullarına göre testleri etkinleştirip devre dışı bırakmayı, @Timeout ile süre sınırını ve @ExtendWith ile @RegisterExtension üzerinden uzantı eklemeyi öğrenir.
Modül 1
Koşullu Çalıştırma Anotasyonları
  • @EnabledOnOs ve @DisabledOnOs ile işletim sistemi
  • @EnabledOnJre ile Java sürümüne göre çalıştırma
  • @EnabledIfSystemProperty ile sistem özelliği koşulu
  • @EnabledIfEnvironmentVariable ile ortam değişkeni
  • @EnabledIf ile özel koşul metodu tanımlama
  • Atlanan testlerin raporda gerekçeyle görünmesi
Modül 2
@Timeout ile Süre Sınırı
  • @Timeout ile test için üst süre sınırı koyma
  • Metot ve sınıf düzeyinde timeout tanımı
  • Birim ve zaman biriminin belirtilmesi
  • Zaman aşımında testin başarısız sayılması
  • assertTimeout ile anotasyon farkının bilinmesi
  • Yavaş testlerin erken yakalanması
Modül 3
@ExtendWith ile Uzantı Ekleme
  • @ExtendWith ile hazır uzantıların bağlanması
  • MockitoExtension gibi yaygın uzantıların kullanımı
  • Sınıf ve metot düzeyinde uzantı uygulama
  • Birden fazla uzantının birlikte çalışması
  • Deklaratif uzantı kaydının avantajları
  • Uzantı sırasının davranışa etkisi
Modül 4
@RegisterExtension ile Programatik Kayıt
  • @RegisterExtension ile alan üzerinden kayıt
  • Yapılandırılabilir uzantı örneği oluşturma
  • Static ve instance uzantı yaşam döngüsü farkı
  • Uzantıya çalışma anında parametre verme
  • @ExtendWith ile @RegisterExtension seçimi
  • Paylaşılan kaynakların uzantıyla yönetimi
Günün hedefiKatılımcı meta-anotasyonlarla bileşik anotasyonlar üretir, ParameterResolver ile parametre enjekte eder, yaşam döngüsü kancalarıyla uzantı yazar ve @TestTemplate ile özel test üretimini öğrenir.
Modül 1
Bileşik (Meta) Anotasyon Üretme
  • Birden çok anotasyonu tek anotasyonda birleştirme
  • @Retention ve @Target ile anotasyon tanımlama
  • @Tag ve @Test içeren özel anotasyon yazma
  • Ekip geneli ortak test anotasyonu standartlaştırma
  • Parametreli test kaynağını anotasyona gömme
  • Okunurluğu ve tekrarı azaltan anotasyon tasarımı
Modül 2
ParameterResolver ile Enjeksiyon
  • ParameterResolver arayüzünün uygulanması
  • supportsParameter ile desteklenen tür kontrolü
  • resolveParameter ile örnek üretip enjekte etme
  • Test metoduna özel bağımlılık sağlama
  • ExtensionContext üzerinden bilgiye erişim
  • Enjekte edilen kaynağın yaşam döngüsü yönetimi
Modül 3
Yaşam Döngüsü Kancalı Uzantı
  • BeforeEach ve AfterEachCallback uygulaması
  • BeforeAll ve AfterAllCallback ile sınıf düzeyi kurulum
  • TestWatcher ile sonuçların gözlemlenmesi
  • ExtensionContext.Store ile durum saklama
  • Uzantıyla ortak kurulum/temizlik merkezileştirme
  • Özel uzantının test edilmesi ve paylaşımı
Modül 4
@TestTemplate ile Özel Test Üretimi
  • @TestTemplate ile şablon tabanlı test tanımı
  • TestTemplateInvocationContextProvider yazma
  • Her bağlam için ayrı test çağrısı üretme
  • Parametreli testin arkasındaki mekanizmanın kavranması
  • Özel çağrı bağlamına ek uzantı ekleme
  • Gerçek bir senaryoda şablon testin uygulanması

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Test organizasyonu

@Nested, @TestInstance ve sıralama anotasyonlarıyla karmaşık test sınıflarını hiyerarşik ve okunur yapıda düzenlersiniz.

✅
Anlamlı adlandırma

@DisplayName, @DisplayNameGeneration ve @Tag ile testleri okunur adlandırır ve kategorilere ayırarak raporları netleştirirsiniz.

✅
Parametreli testler

@ParameterizedTest ve çeşitli veri kaynaklarıyla aynı davranışı birçok girdi için tek metotla doğrularsınız.

✅
Gelişmiş veri kaynakları

@MethodSource, @CsvFileSource ve @ArgumentsSource ile karmaşık test verisini esnek ve bakımı kolay biçimde sağlarsınız.

✅
Koşullu çalıştırma

İşletim sistemi, Java sürümü, sistem özelliği ve ortam değişkenine göre testleri koşullu olarak etkinleştirirsiniz.

✅
Uzantı mekanizması

@ExtendWith ve @RegisterExtension ile hazır ve yapılandırılabilir uzantıları JUnit yaşam döngüsüne bağlarsınız.

✅
Özel anotasyonlar

Meta-anotasyonlarla ekibinize özel bileşik test anotasyonları üretip test standartlarını merkezileştirirsiniz.

✅
Özel uzantı geliştirme

ParameterResolver, yaşam döngüsü kancaları ve @TestTemplate ile JUnit'i kendi ihtiyaçlarınıza göre genişletirsiniz.

Kimler İçin Uygundur?

  • JUnit 5 ile düzenli test yazan deneyimli Java geliştiricileri
  • test altyapısını güçlendirmek isteyen otomasyon mühendisleri
  • ekip için ortak test anotasyonları tasarlayan kıdemli geliştiriciler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
JUnit 5 ile düzenli birim testi yazan deneyimli Java geliştiricileri, test altyapısını güçlendirmek isteyen otomasyon mühendisleri ve ekip için ortak test anotasyonları tasarlayan kıdemli geliştiriciler için uygundur. Temel JUnit 5 deneyimi ön koşuldur.
JUnit'e giriş eğitiminden farkı nedir?
Giriş eğitimi @Test, yaşam döngüsü ve temel assertion'ları öğretir. Bu program ise o temeli varsayar ve @Nested, parametreli testler, koşullu çalıştırma, uzantı mekanizması ile meta-anotasyon ve özel uzantı geliştirme gibi ileri anotasyon konularına odaklanır.
Parametreli test ne işe yarar?
Parametreli test, aynı test mantığını birçok farklı girdi için tek bir metotla çalıştırmanızı sağlar. Böylece kopyalanmış test metotlarından kurtulur, kenar durumları kolayca kapsarsınız. Eğitimde @ValueSource, @CsvSource ve @MethodSource gibi kaynaklar uygulamalı işlenir.
Eğitimin süresi ve formatı nedir?
Eğitim dört gün sürer ve her gün dört modülden oluşur. Tüm anotasyonlar gerçek test sınıfları üzerinde canlı kodlama ve özel uzantı alıştırmalarıyla işlenir. Program yüz yüze veya online yapılabilir ve kuruma göre uyarlanır.
Eğitim sonunda sertifika veriliyor mu?
Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Eğitim, JUnit 5'in ileri anotasyonlarını ve özel uzantı geliştirmeyi gerçek test kodu üzerinde uygulamalı kazandırmaya odaklanır ve kuruma özel uyarlanabilir.

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: Advanced Annotations in JUnit Eğitimi Sertifika Kodu DV-2026XX00 Tarih 15.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
Seviyeİleri 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 : 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 →
Yazılım Test TemelleriSoftware Testing Foundation : Testing & the Software Development Lifecycle Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Software Testing Foundation : Testing & the Software Development Lifecycle Eğitimi

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

SDLC modelleri, V-modeli, çevik test, bileşenden kabule test seviyeleri ve shift-left yaklaşımıyla testin yaşam döngüsündeki yerini anlatan Foundation eğitimi.

Detayları Gör →
Yazılım Test TemelleriStratejik Esneklik ve Kalite Güvencesi Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Stratejik Esneklik ve Kalite Güvencesi Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

Kalite stratejisi, risk temelli test, süreç çevikliği, kalite metrikleri ve kalite kültürüyle değişime uyumlu kalite güvencesi yönetimini kazandıran eğitim.

Detayları Gör →
Yazılım Test TemelleriTest Driven Development (TDD) and Unit Testing Essentials (TT3500) Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Test Driven Development (TDD) and Unit Testing Essentials (TT3500) Eğitimi

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

Birim testi, kırmızı-yeşil-refactor döngüsü, JUnit, mock nesneler ve kod kapsamıyla geliştiriciler için uygulamalı TDD ve unit testing esasları eğitimi.

Detayları Gör →
Yazılım Test TemelleriTest Driven Development Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Test Driven Development Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

TDD döngüsü, test çiftleri, outside-in TDD, eski kodda karakterizasyon testleri, BDD köprüsü ve sürekli entegrasyonla kapsamlı test odaklı geliştirme eğitimi.

Detayları Gör →
Yazılım Test TemelleriTester Foundation Level 4.0: Software Testing Basics Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Tester Foundation Level 4.0: Software Testing Basics Eğitimi

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

ISTQB CTFL 4.0 temelli yazılım testi temelleri eğitimi: test kavramları, hata-kusur-arıza, yedi prensip, test süreci ve testçi psikolojisi. Sınava hazırlık.

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