UNIT TESTING WITH MOCKS: CREATING MOCKS & VERIFYING BEHAVIOR EĞİTİMİ

Bağımlılıkları taklit edin, davranışı doğrulayın

Test doubles, mock oluşturma, stubbing, argument matcher ve davranış doğrulama (verify)

Unit Testing with Mocks Eğitimi, birim test yazan geliştiricilere bağımlılıkları taklit ederek izole ve güvenilir testler yazmayı kazandırır.

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

Eğitim Hakkında

Test doubles türlerinden mock oluşturmaya, stubbing'den davranış doğrulamaya

Unit Testing with Mocks Eğitimi, birim test yazan geliştiricilere bağımlılıkları taklit ederek izole ve güvenilir testler yazmayı kazandırır. Katılımcılar test doubles türlerini (dummy, stub, fake, spy, mock), bağımlılık enjeksiyonunu, mock oluşturmayı, stubbing ile dönüş ve istisna ayarlamayı, argument matcher kullanımını, spy ve kısmi mock'u, verify ile etkileşim doğrulamayı, çağrı sayısı ve sırasını, argument captor'ı ve mock anti-desenlerini uygulamalı öğrenir.

Süre ve Format

3 Gün. Her gün dört modül; her konu çalışan bir kod tabanı üzerinde mock yazma, stubbing ve doğrulama atölyeleriyle pekiştirilir.

Seviye

Orta Seviye — birim test yazan geliştiriciler için test doubles, mock oluşturma ve davranış doğrulama

Öğrenme Metodu

Örnek bir servis sınıfının bağımlılıkları mock'lanır; stubbing ve verify adımları canlı kodlanır ve testler koşturularak sonuçlar incelenir.

Neden Bu Eğitim?

🧪İzole birim testi

Veritabanı ve servis gibi bağımlılıkları mock'layarak birimi dış dünyadan izole eder, hızlı ve kararlı birim testleri yazarsınız.

🎭Doğru test double

Dummy, stub, fake, spy ve mock arasındaki farkı kavrayarak her senaryoda en uygun test double türünü bilinçli seçersiniz.

✔️Davranış doğrulama

verify ile nesnelerin doğru metotları, doğru argüman ve sayıyla çağırdığını kanıtlayarak etkileşimi güvenle test edersiniz.

Anahtar Konular

unit test eğitimimockito eğitimimock nesnesi eğitimibirim test mocktest doubles nedirstubbing eğitimidavranış doğrulama verifyunit testing with mockstest otomasyonu eğitimitest edilebilir kod
“Mock bir araçtır, amaç değil. İyi testçi neyi taklit edeceğini değil, neyi gerçekten doğrulaması gerektiğini bilir.”

Ön Koşullar

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

1
Nesne yönelimli dil

Java, C# veya Python gibi bir nesne yönelimli dilde sınıf ve metot yazma düzeyinde deneyim beklenir.

2
Birim test aşinalığı

JUnit, NUnit veya pytest gibi bir çatıyla basit birim testleri yazma aşinalığı faydalıdır.

3
Bağımlılık kavramı

Sınıflar arası bağımlılık ve arayüz (interface) kavramlarına temel düzeyde aşinalık gereklidir.

4
Çalışma ortamı

Seçilen dilin geliştirme ortamı, test çatısı ve mock kütüphanesi kurulu bir makine 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ı birim testte izolasyonun neden gerektiğini açıklar; test doubles türlerini ayırt eder, bağımlılık enjeksiyonuyla test edilebilir kod kurar ve bir mock çatısını tanır.
Modül 1
Birim Testte İzolasyon İhtiyacı
  • Test edilen birimin (SUT) sınırının belirlenmesi
  • Gerçek bağımlılıkların testi yavaşlatması sorunu
  • Dış kaynakların testi kırılgan (flaky) yapması
  • İzolasyonla hatanın kaynağının netleşmesi
  • Hızlı ve yinelenebilir birim testin değeri
  • İzolasyon ile entegrasyon testinin ayrımı
Modül 2
Test Double Türleri
  • Dummy: yalnızca parametreyi doldurma amaçlı nesne
  • Stub: önceden tanımlı yanıt döndüren nesne
  • Fake: basit çalışan sahte uygulama (ör. in-memory DB)
  • Spy: gerçek çağrıları kaydeden gözlemci nesne
  • Mock: beklenti tanımlanan ve doğrulanan nesne
  • Türlerin amaç ve kullanım senaryolarına göre seçimi
Modül 3
Bağımlılık Enjeksiyonu ve Test Edilebilirlik
  • Constructor injection ile bağımlılık dışarıdan verme
  • Arayüze (interface) programlamanın test kolaylığı
  • Sıkı bağlı (tightly coupled) kodun test zorluğu
  • Statik ve new ile kurulan bağımlılıkların sorunu
  • Test edilebilir tasarımın mock'lamayı kolaylaştırması
  • Seam (dikiş) noktalarıyla bağımlılığın değiştirilmesi
Modül 4
Mock Çatılarına Giriş
  • Java için Mockito ile mock oluşturma temeli
  • C# için Moq kütüphanesinin kullanımı
  • Python için unittest.mock ve patch yapısı
  • JavaScript için jest mock fonksiyonları
  • Çatıların ortak kavramlarının kavranması
  • Projeye uygun mock kütüphanesinin seçimi
Günün hedefiKatılımcı mock nesneleri oluşturur; metotlara dönüş değeri ve istisna stub'lar, argument matcher ile esnek eşleme yapar ve spy ile kısmi mock senaryolarını uygular.
Modül 1
Mock Nesnesi Oluşturma
  • mock() ve @Mock anotasyonuyla mock üretimi
  • @InjectMocks ile bağımlılıkların enjekte edilmesi
  • Mock'un varsayılan (default) davranışının kavranması
  • Arayüz ve somut sınıf mock'lama farkı
  • Test kurulumunda (setup) mock hazırlama
  • Mock yaşam döngüsünün test başına yönetilmesi
Modül 2
Stubbing: Dönüş ve İstisna Ayarlama
  • when(...).thenReturn(...) ile dönüş değeri tanımı
  • thenThrow ile istisna fırlatma senaryosu kurma
  • Ardışık çağrılar için farklı dönüşlerin ayarlanması
  • thenAnswer ile dinamik yanıt üretimi
  • void metotlar için doThrow/doReturn kullanımı
  • Stub'ın yalnızca gerekli metotlara yazılması
Modül 3
Argument Matcher Kullanımı
  • any(), eq() ve anyString() matcher'ları
  • Belirli değere göre koşullu stubbing
  • Özel (custom) matcher ile karmaşık eşleme
  • Matcher ve gerçek değer karıştırma hatasından kaçınma
  • argThat ile yüklem (predicate) tabanlı eşleme
  • Matcher'ların doğrulamada da kullanımı
Modül 4
Spy ve Kısmi Mock (Partial Mock)
  • spy() ile gerçek nesneyi sarmalama
  • Gerçek davranışı koruyup bazı metotları stub'lama
  • doReturn'ün spy'da neden tercih edildiği
  • Kısmi mock'ın uygun olduğu nadir senaryolar
  • Spy kullanımının getirdiği tasarım kokusu uyarısı
  • Spy ile mock arasındaki farkın netleştirilmesi
Günün hedefiKatılımcı verify ile etkileşimleri doğrular; çağrı sayısı ve sırasını denetler, argument captor ile argümanları yakalar ve durum-davranış doğrulama ile anti-desenleri ayırt eder.
Modül 1
verify ile Etkileşim Doğrulama
  • verify() ile bir metodun çağrıldığının doğrulanması
  • Doğru argümanlarla çağrının teyit edilmesi
  • verifyNoInteractions ile hiç çağrı olmadığını kanıtlama
  • verifyNoMoreInteractions ile fazladan çağrı denetimi
  • Doğrulamanın test niyetini açıkça yansıtması
  • Stubbing ve doğrulamanın rollerinin ayrılması
Modül 2
Çağrı Sayısı ve Sırası Doğrulama
  • times(n) ile tam çağrı sayısının doğrulanması
  • never() ile metodun hiç çağrılmadığını teyit
  • atLeast ve atMost ile sayı aralığı doğrulama
  • InOrder ile çağrıların sırasının denetlenmesi
  • timeout ile asenkron çağrıların doğrulanması
  • Aşırı sıkı doğrulamanın kırılganlığa yol açması
Modül 3
Argument Captor ile Argüman Yakalama
  • ArgumentCaptor ile çağrı argümanının yakalanması
  • Yakalanan nesne üzerinde assertion yapılması
  • @Captor anotasyonuyla captor tanımlama
  • Birden çok çağrının argümanlarının toplanması
  • Captor'ın matcher'a göre ne zaman tercih edileceği
  • Karmaşık nesnelerin alanlarının doğrulanması
Modül 4
Durum-Davranış Doğrulama ve İyi Uygulamalar
  • Durum (state) ve davranış (behavior) doğrulama ayrımı
  • Aşırı mock'lamanın (over-mocking) test değerini düşürmesi
  • Sahibi olmadığın tipi mock'lama anti-deseni
  • Kırılgan ve bakımı zor testlerden kaçınma
  • Mock'u gerçekten izolasyon gerektiğinde kullanma
  • Okunur, niyeti açık test adlandırması ve düzeni

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
İzolasyon mantığı

Birim testte izolasyonun neden gerektiğini kavrar ve bağımlılıkları taklit ederek hızlı, kararlı testler yazarsınız.

✅
Test double seçimi

Dummy, stub, fake, spy ve mock arasındaki farkı bilir ve her senaryoda en uygun türü doğru seçersiniz.

✅
Test edilebilir kod

Bağımlılık enjeksiyonu ve arayüze programlamayla mock'lamayı kolaylaştıran test edilebilir kod tasarlarsınız.

✅
Mock oluşturma

Mockito, Moq, unittest.mock veya jest ile mock nesneleri oluşturur ve test kurulumunda doğru yönetirsiniz.

✅
Stubbing ustalığı

thenReturn, thenThrow ve thenAnswer ile dönüş ve istisna senaryolarını esnek biçimde stub'layabilirsiniz.

✅
Argument matcher

any, eq ve argThat gibi matcher'ları doğru kurallarla kullanarak esnek eşleme ve doğrulama yaparsınız.

✅
Davranış doğrulama

verify, times, InOrder ve ArgumentCaptor ile çağrıları, sayıyı, sırayı ve argümanları güvenle doğrularsınız.

✅
Anti-desenlerden kaçınma

Aşırı mock'lama ve kırılgan test gibi anti-desenleri tanır ve bakımı kolay, niyeti açık testler yazarsınız.

Kimler İçin Uygundur?

  • Birim test yazan yazılım geliştiriciler
  • test otomasyon mühendisleri
  • test edilebilir kod yazmak isteyen yazılımcılar için uygundur. Bir nesne yönelimli dilde temel deneyim ve birim test aşinalığı beklenir

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Birim test yazan yazılım geliştiriciler, test otomasyon mühendisleri ve test edilebilir kod yazmak isteyen yazılımcılar için uygundur. Bir nesne yönelimli dilde temel deneyim ve basit birim test yazma aşinalığı beklenir; sıfırdan programlama öğretilmez.
Hangi dil ve mock kütüphanesi kullanılıyor?
Örnekler ağırlıklı olarak Java ve Mockito ile işlenir; ancak kavramlar C# (Moq), Python (unittest.mock) ve JavaScript (jest) için de karşılıklarıyla gösterilir. Kurumsal gruplarda eğitim, ekibin kullandığı dil ve mock kütüphanesine göre uyarlanabilir.
Mock, stub ve spy arasındaki fark nedir?
Stub çağrıya önceden tanımlı bir yanıt döndürür ve durumu test etmeye yarar; mock ise beklenen etkileşimlerin gerçekleştiğini doğrulamak için kullanılır. Spy gerçek nesneyi sarıp çağrıları kaydeder. Eğitimde bu ayrımlar çalışan kod örnekleriyle netleştirilir.
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 çalışan bir kod tabanı üzerinde mock yazma, stubbing ve verify atölyeleriyle pekiştirilir; testler canlı koşturulur. 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ı kodlama atölyelerini belgeler; kurumsal gruplara özel dil 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 with Mocks: Creating Mocks & Verifying Behavior 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 : 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 →
Yazılım Test TemelleriTester Foundation Level 4.0: Software Testing Processes Eğitimi
Yazılım Testi ve Kalite Eğitimleri

Tester Foundation Level 4.0: Software Testing Processes Eğitimi

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

ISTQB CTFL 4.0 test süreci eğitimi: test aktiviteleri, test planı, kestirim, strateji, giriş-çıkış kriterleri, izleme, kontrol, metrik ve raporlama.

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