UNIT TESTING WITH MOCKS: MOCKING EXCEPTIONS & USING SPIES EĞİTİMİ

İstisnaları mock'layın, spy ile kısmi taklit edin

thenThrow ve doThrow, void metot istisnaları, spy ile gerçek nesne, doReturn ve kısmi mock

Unit Testing with Mocks: Mocking Exceptions & Using Spies Eğitimi, Mockito ile hata senaryolarını ve kısmi taklit tekniklerini derinlemesine işler.

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

Eğitim Hakkında

İstisna fırlatan mock'lardan spy ile kısmi taklide ve hata yollarının testine

Unit Testing with Mocks: Mocking Exceptions & Using Spies Eğitimi, Mockito ile hata senaryolarını ve kısmi taklit tekniklerini derinlemesine işler. Katılımcılar thenThrow ve doThrow ile mock'lara istisna fırlattırmayı, checked ve unchecked istisnaların testini, spy ile gerçek nesnenin metotlarını kısmen taklit etmeyi, doReturn ile spy stubbing inceliklerini ve kısmi mock'ın doğru kullanımını öğrenir. Eğitim hata yollarının kapsamlı testiyle tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; istisna ve spy senaryoları gerçek kod üzerinde canlı kodlama ve hata yolu alıştırmalarıyla işlenir.

Seviye

Orta Seviye — Mockito ile istisna fırlatma, hata yollarının testi ve spy ile kısmi mock konularına odaklanan program

Öğrenme Metodu

Her hata senaryosu ve spy tekniği gerçek bir servis üzerinde canlı kodlanır; katılımcılar kendi hata yolu testlerini yazarak pekiştirir.

Neden Bu Eğitim?

⚠️Hata yollarını test edin

Mutlu yolun yanı sıra istisna ve hata senaryolarını mock'layarak kodun beklenmedik durumlara doğru tepki verdiğini kanıtlarsınız.

🕵️Spy ile kısmi taklit

Gerçek nesnenin davranışını korurken yalnızca belirli metotları taklit ederek eski ve karmaşık kodu güvenle test edersiniz.

🛡️Dayanıklı kod kanıtı

İstisna fırlatan bağımlılıklar karşısında kodun kurtarma ve yeniden deneme davranışını test ederek dayanıklılığı güvenceye alırsınız.

Anahtar Konular

mockito istisna eğitimimockito spythenthrow dothrowkısmi mock eğitimiassertthrowshata yolu testidoreturn mockitospy vs mockmockito ileri eğitimijava hata testi
“Kodun gerçek olgunluğu mutlu yolda değil, bir bağımlılık istisna fırlattığında nasıl davrandığında ortaya çıkar; hata yollarını test edin.”

Ön Koşullar

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

1
Mockito temeli

mock oluşturma, when/thenReturn ile stubbing ve verify kullanımına aşinalık bu eğitimi takip etmek için gereklidir.

2
İstisna yönetimi

Java'da try-catch, checked ve unchecked istisna kavramlarını bilmek hata senaryolarını kurgulamayı kolaylaştırır.

3
JUnit 5 bilgisi

@Test, assertThrows gibi JUnit 5 yapılarıyla test yazabilmek istisna doğrulamalarında avantaj sağlar.

4
Temel tasarım

Servis, repository ve bağımlılık enjeksiyonu gibi kavramlara aşinalık örnekleri anlamayı 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ı thenThrow ve doThrow ile mock'lara istisna fırlattırmayı, checked ve unchecked istisnaların kurallarını ve hata senaryolarını tasarlamayı öğrenir.
Modül 1
thenThrow ile İstisna Tanımlama
  • when(mock.metot()).thenThrow(ex) söz dizimi
  • İstisna sınıfı ile örnek arasında seçim
  • Ardışık çağrılarda önce değer sonra istisna
  • Değer döndüren metotlar için istisna stub'ı
  • İstisna mesajının testte kullanılması
  • Stub edilen istisnanın yakalanıp doğrulanması
Modül 2
Checked ve Unchecked İstisnalar
  • Metot imzasının izin verdiği checked istisnalar
  • İmzada olmayan checked istisnanın reddedilmesi
  • RuntimeException türevlerinin serbest fırlatılması
  • Özel (custom) istisna sınıflarının kullanımı
  • İstisna hiyerarşisinin test üzerindeki etkisi
  • Uygun istisna türünün senaryoya göre seçimi
Modül 3
doThrow ile Alternatif Söz Dizimi
  • doThrow(ex).when(mock).metot() kullanımı
  • thenThrow ile doThrow arasındaki fark
  • Spy üzerinde güvenli istisna stub'lama
  • Stub sırası ve okunabilirlik tercihleri
  • Birden çok istisna davranışının zincirlenmesi
  • Hangi söz diziminin ne zaman tercih edileceği
Modül 4
void Metotlarda İstisna
  • void metotta when kullanılamamasının nedeni
  • doThrow ile void metoda istisna attırma
  • doNothing ile istisnasız davranış tanımı
  • void çağrının yan etkisinin doğrulanması
  • Bildirim veya kaydetme hatalarının taklidi
  • void hata senaryosunun verify ile denetimi
Günün hedefiKatılımcı mock'ların fırlattığı istisnaları assertThrows ile yakalar, kodun kurtarma, yeniden deneme ve geri dönüş (fallback) davranışını test ederek hata yollarını eksiksiz kapsar.
Modül 1
İstisnanın Yakalanması ve Doğrulanması
  • assertThrows ile beklenen istisnanın yakalanması
  • İstisna türü ve mesajının birlikte kontrolü
  • İstisna neden (cause) zincirinin doğrulanması
  • Yanlış istisna fırlatılmasının testle yakalanması
  • İstisna fırlatılmamasının bir hata sayılması
  • AssertJ assertThatThrownBy ile akıcı kontrol
Modül 2
Kurtarma ve Fallback Davranışı
  • Bağımlılık hata verince fallback değer dönme
  • Alternatif kaynağa geçişin test edilmesi
  • Hata sonrası durumun tutarlı kalmasının kontrolü
  • Catch bloğundaki loglama ve bildirim doğrulama
  • Kısmi başarı senaryolarının ele alınması
  • Varsayılan değerle zarif düşüşün (graceful) testi
Modül 3
Yeniden Deneme (Retry) Senaryoları
  • İlk çağrıda hata, sonrakinde başarı taklidi
  • thenThrow sonrası thenReturn ile retry kurgusu
  • Deneme sayısının verify times ile doğrulanması
  • Maksimum deneme aşımının test edilmesi
  • Geri çekilme (backoff) mantığının sınanması
  • Sonunda başarısız olan retry'ın doğrulanması
Modül 4
İstisna Sarma ve Çevirme
  • Düşük seviye istisnanın üst seviyeye sarılması
  • Teknik istisnanın alan (domain) istisnasına çevrilmesi
  • Orijinal nedenin (cause) korunmasının testi
  • İstisna mesajının zenginleştirilmesinin kontrolü
  • Katmanlar arası istisna sınırının test edilmesi
  • Anlamlı hata mesajının kullanıcıya ulaşması
Günün hedefiKatılımcı spy ile gerçek nesnenin davranışını korurken belirli metotları taklit etmeyi, doReturn ile güvenli stubbing yapmayı ve kısmi mock'ın doğru kullanım alanlarını öğrenir.
Modül 1
Spy Oluşturma ve Mantığı
  • spy(gercekNesne) ile sarmalayıcı oluşturma
  • @Spy anotasyonuyla spy tanımlama
  • Spy'ın varsayılan olarak gerçek metodu çağırması
  • Mock ve spy arasındaki temel davranış farkı
  • Gerçek nesnenin durumunun korunması
  • Spy'ın uygun olduğu kullanım senaryoları
Modül 2
doReturn ve thenReturn Farkı
  • Spy'da thenReturn'ün gerçek metodu çağırma riski
  • doReturn(x).when(spy).metot() ile güvenli stub
  • Yan etkili gerçek metotların atlanması
  • doThrow ve doAnswer'ın spy üzerinde kullanımı
  • Stub edilen ve edilmeyen metotların birlikteliği
  • Spy stubbing'de okunabilirlik tercihleri
Modül 3
Kısmi Mock (Partial Mock)
  • Sınıfın bir kısmını taklit edip kalanını koruma
  • Pahalı veya dış bağımlılıklı metodun stub'lanması
  • Hesaplama mantığının gerçek bırakılması
  • Kısmi mock'ın tasarım kokusu olabilme riski
  • callRealMethod ile gerçek davranışa yönlendirme
  • Kısmi mock yerine refactoring seçeneğinin değerlendirilmesi
Modül 4
Spy Üzerinde Doğrulama
  • Spy'da gerçek çağrıların verify ile doğrulanması
  • Stub edilen ve gerçek metot çağrılarının ayrımı
  • ArgumentCaptor ile spy argümanlarının yakalanması
  • Spy'da çağrı sayısı ve sırasının kontrolü
  • Gerçek metot yan etkisinin test üzerindeki etkisi
  • Spy testlerinin kırılganlığına dikkat etme
Günün hedefiKatılımcı doAnswer ile dinamik davranış kurar, istisna ve spy tekniklerini birleştirerek karmaşık hata akışlarını modeller ve gerçek bir serviste uçtan uca hata yolu testi yazar.
Modül 1
doAnswer ile Dinamik Davranış
  • doAnswer ile argümana bağlı yanıt üretme
  • InvocationOnMock ile çağrı argümanlarına erişim
  • Callback metotlarının taklit edilip tetiklenmesi
  • Koşullu olarak değer dönme veya istisna fırlatma
  • Yan etki simülasyonu (örn. liste değiştirme)
  • doAnswer'ın aşırı karmaşıklığından kaçınma
Modül 2
İstisna ve Spy'ı Birleştirme
  • Spy'da belirli metoda doThrow ile istisna attırma
  • Gerçek akış içinde hata enjekte etme
  • Kısmi mock ile hata yolu senaryosu kurma
  • Birden çok bağımlılıkta zincirli hata modelleme
  • Kurtarma mantığının spy üzerinde doğrulanması
  • Karmaşık senaryoda testin okunur tutulması
Modül 3
Hata Yolu Kapsamını Değerlendirme
  • Mutlu yol ve hata yolu kapsamının dengelenmesi
  • Kapsanmayan catch bloklarının tespiti
  • Her istisna dalının test edilmesinin önemi
  • Aşırı hata testi ile kırılganlık dengesi
  • Anlamlı hata senaryolarının önceliklendirilmesi
  • Test adlarında hata senaryosunun belirtilmesi
Modül 4
Uçtan Uca Hata Yolu Uygulaması
  • Dış servis hatasında kurtarma akışının testi
  • Repository istisnasında işlem geri alma kontrolü
  • Spy ile gerçek doğrulama mantığının korunması
  • Yeniden deneme ve fallback'in birlikte sınanması
  • Given-When-Then ile okunur hata testi yazımı
  • Senaryonun takımla gözden geçirilmesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
İstisna stub'lama

thenThrow ve doThrow ile mock'lara istisna fırlattırır, değer dönen ve void metotlarda hata senaryoları kurgularsınız.

✅
İstisna türü yönetimi

Checked ve unchecked istisnaların kurallarını bilir, metot imzasına uygun ve anlamlı istisna türlerini seçersiniz.

✅
Hata yolu testi

assertThrows ve assertThatThrownBy ile istisnaları yakalar, tür, mesaj ve neden zincirini ayrıntılı doğrularsınız.

✅
Kurtarma ve retry

Fallback, yeniden deneme ve zarif düşüş davranışlarını mock senaryolarıyla modelleyip test edersiniz.

✅
Spy kullanımı

spy ile gerçek nesnenin davranışını korurken belirli metotları taklit eder, kısmi mock'ı yerinde kullanırsınız.

✅
doReturn inceliği

Spy'da gerçek metodu tetiklememek için doReturn ve doThrow kullanarak güvenli ve yan etkisiz stubbing yaparsınız.

✅
Dinamik davranış

doAnswer ve InvocationOnMock ile argümana bağlı yanıtlar ve callback tetikleme gibi dinamik senaryolar kurarsınız.

✅
Dayanıklılık kanıtı

İstisna ve spy tekniklerini birleştirerek karmaşık hata akışlarını uçtan uca test eder, kodun dayanıklılığını güvenceye alırsınız.

Kimler İçin Uygundur?

  • Mockito ile temel mock yazabilen Java geliştiricileri
  • hata senaryolarını eksiksiz test etmek isteyen backend ekipleri
  • eski kodu spy ile güvenle test etmek isteyen test mühendisleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Mockito ile temel mock, stubbing ve verify yazabilen Java geliştiricileri ile hata senaryolarını eksiksiz test etmek isteyen backend ve test ekipleri için uygundur. Giriş seviyesi Mockito deneyimi ön koşuldur.
Getting Started with Mockito eğitiminden farkı nedir?
Giriş eğitimi mock oluşturma, when/thenReturn ve verify temellerini öğretir. Bu program ise o temeli varsayar ve istisna fırlatma, hata yollarının testi ile spy tabanlı kısmi taklit gibi ileri hata ve izolasyon senaryolarına odaklanır.
Spy ile mock arasındaki fark nedir?
Mock tüm metotları varsayılan olarak taklit eder ve gerçek kodu çalıştırmaz. Spy ise gerçek nesneyi sarar, stub edilmeyen metotlarda gerçek davranışı sürdürür. Eğitimde spy'ın ne zaman uygun olduğu ve doReturn ile güvenli stubbing 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. İstisna ve spy senaryoları gerçek bir servis üzerinde canlı kodlama ve hata yolu 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, Mockito ile istisna ve spy tekniklerini gerçek hata senaryoları ü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 with Mocks: Mocking Exceptions & Using Spies Eğ Sertifika Kodu DV-2026XX00 Tarih 15.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 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 TemelleriUnit Testing: Advanced Annotations in JUnit Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Unit Testing: Advanced Annotations in JUnit Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

JUnit 5 @Nested, @ParameterizedTest, @MethodSource, @ExtendWith, @RegisterExtension, @TestTemplate ve özel uzantı geliştirmeyi işleyen ileri birim test eğitimi.

Detayları Gör →
Yazılım Test TemelleriUnit Testing: An Introduction to the JUnit Framework Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Unit Testing: An Introduction to the JUnit Framework Eğitimi

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

JUnit 5 mimarisi, Maven/Gradle kurulumu, @Test ve yaşam döngüsü, temel assertion'lar ve assertThrows ile sıfırdan birim test yazmayı öğreten giriş eğitimi.

Detayları Gör →
Yazılım Test TemelleriUnit Testing: Assertions & Assumptions in JUnit Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Unit Testing: Assertions & Assumptions in JUnit Eğitimi

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

JUnit 5 assertEquals, assertAll, assertThrows, assertTimeout, varsayımlar (assumeTrue), Hamcrest ve AssertJ ile doğru iddia seçimini öğreten birim test eğitimi.

Detayları Gör →
Yazılım Test TemelleriUnit Testing: Executing JUnit Tests Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Unit Testing: Executing JUnit Tests Eğitimi

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

JUnit 5 testlerini IDE, Maven Surefire, Gradle ve ConsoleLauncher ile çalıştırma, etiketle filtreleme, paralel yürütme ve CI entegrasyonunu öğreten eğitim.

Detayları Gör →
Yazılım Test TemelleriUnit Testing: Parameterized JUnit Tests Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Unit Testing: Parameterized JUnit Tests Eğitimi

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

JUnit 5 ile veri odaklı birim testi eğitimi: @ParameterizedTest, ValueSource, CsvSource, MethodSource, Mockito ve JaCoCo kapsam ölçümü. Kurumsal ve online.

Detayları Gör →
Yazılım Test TemelleriUygulamalı Yazılım Test Mühendisi Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Uygulamalı Yazılım Test Mühendisi Eğitimi

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

Uçtan uca test mühendisi eğitimi: test tasarım teknikleri, hata yönetimi, Selenium ve Postman otomasyonu, test yönetimi ve CI/CD. Kurumsal ve online.

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