UNIT TESTING IN JAVASCRIPT: SINONJS EĞİTİMİ

Bağımlılıkları test doubles ile izole edin

SinonJS ile spy, stub ve mock kullanarak bağımlılıkları izole eden sağlam unit testler yazın

SinonJS Eğitimi, JavaScript testlerinde bağımlılıkları test doubles ile izole etmeyi öğretir. Program spy ile çağrı gözlemini, stub ile davranış değiştirmeyi, mock ile beklenti doğrulamayı, fake timer ile zaman kontrolünü ve fake server ile ağ simülasyonunu u…

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

Eğitim Hakkında

Spy ve stub'tan mock'lara, fake timer'dan sahte sunucuya ve sandbox ile temiz test kurulumuna

SinonJS Eğitimi, JavaScript testlerinde bağımlılıkları test doubles ile izole etmeyi öğretir. Katılımcılar spy ile çağrıları gözlemler, stub ile davranışı değiştirir, mock ile beklentileri doğrular ve fake timer ile zamanı kontrol eder. Sahte XHR/sunucu ile ağ çağrılarını, sandbox ile temiz kurulum/temizliği ve matcher'larla esnek assertion'ları uygular. Mocha ve Chai ile entegrasyon işlenir. Program gerçek bir modülün izole test paketini kurmakla tamamlanır.

Süre ve Format

3 Gün. Her gün dört modül; test doubles kavramları spy, stub ve mock olarak kodlanıp gerçek bir modülün izole test paketine dönüştürülür.

Seviye

Orta Seviye — SinonJS ile JavaScript testlerinde spy, stub, mock, fake timer ve sandbox kullanımı

Öğrenme Metodu

Her test double türü önce kavramsal sonra kodla uygulanır; üç gün boyunca bağımlılıkları izole eden bir test paketi adım adım geliştirilir.

Neden Bu Eğitim?

🎯İzole testler

Dış bağımlılıkları test doubles ile izole ederek testlerinizi hızlı, deterministik ve dış sistemlerden bağımsız hale getirmeyi öğrenirsiniz.

🕵️Davranış doğrulama

Spy ve mock ile bir fonksiyonun hangi argümanla kaç kez çağrıldığını doğrulayarak kodun iç etkileşimlerini güvenle test edersiniz.

⏱️Zamanı kontrol

Fake timer ile setTimeout ve Date'i kontrol ederek zamana bağlı kodu saniyelerce beklemeden anında ve kararlı biçimde test edersiniz.

Anahtar Konular

sinonjs eğitimisinon.js kursujavascript test doublesspy stub mock javascriptjavascript unit test eğitimimock testifake timer testnode.js test kursumocha sinon chaibağımlılık izolasyonu test
“İyi bir test, dış dünyayı taklit edebildiği ölçüde hızlı, kararlı ve güvenilir olur; SinonJS bu taklidin aracıdır.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve hazırlık

1
JavaScript bilgisi

Fonksiyon, nesne, callback ve asenkron JavaScript kavramlarına aşinalık bu eğitim için gereklidir.

2
Test temeli

Mocha veya benzeri bir koşucuda describe/it yapısı ve assertion yazma deneyimi beklenir.

3
Node.js ve npm

Node.js kurulumu, npm ile paket yükleme ve modül sistemine temel düzeyde aşinalık önerilir.

4
Geliştirme ortamı

VS Code, terminal ve Node.js kurulu bir geliştirme ortamının hazır olması önerilir.

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ı test doubles kavramını kavrar, SinonJS'i kurar, spy ile fonksiyon çağrılarını gözlemler ve çağrı sayısını, argümanları ve dönüş değerini doğrular.
Modül 1
Test Doubles Kavramı
  • Test double (sahte nesne) neden gerekir
  • Spy, stub, mock ve fake arasındaki farklar
  • Bağımlılık izolasyonu ve hızlı test
  • Dummy, fake ve stub terim ayrımı
  • Davranış doğrulama ile durum doğrulama
  • Hangi senaryoda hangi double'ın seçilmesi
Modül 2
SinonJS Kurulumu
  • npm ile sinon paketini projeye ekleme
  • require/import ile sinon'u projeye alma
  • Mocha ve Chai ile birlikte kurulum
  • sinon-chai ile assertion söz dizimi
  • Tarayıcı ve Node.js ortam farkları
  • İlk spy'ı yazıp test içinde çalıştırma
Modül 3
Spy Oluşturma ve Kullanma
  • sinon.spy() ile anonim spy oluşturma
  • Var olan metodu spy ile sarmalama
  • callThrough ile orijinal davranışı koruma
  • Spy'ın çağrıları şeffaf gözlemlemesi
  • Callback'leri spy ile test etme
  • Spy'ı restore ile güvenle geri alma
Modül 4
Çağrı Bilgilerini Doğrulama
  • called, calledOnce ve callCount kontrolü
  • calledWith ile argümanları doğrulama
  • calledWithExactly ile tam eşleşme
  • firstCall ve args ile çağrı detayı
  • returned ve threw ile sonuç doğrulama
  • calledBefore/calledAfter ile çağrı sırası
Günün hedefiKatılımcı stub ile bağımlılıkların davranışını değiştirir, dönüş ve hata senaryolarını kontrol eder, mock ile çağrı beklentilerini önceden tanımlayıp doğrular.
Modül 1
Stub Temelleri ve Dönüş
  • sinon.stub() ile metodu değiştirme
  • returns ile sabit dönüş değeri verme
  • throws ile hata fırlatan davranış kurma
  • callsFake ile özel davranış tanımlama
  • Orijinal metodun çağrılmasını engelleme
  • Stub'ı restore ile güvenle geri alma
Modül 2
Koşullu ve Asenkron Stub
  • withArgs ile argümana göre dönüş ayırma
  • onCall ve onFirstCall ile çağrı bazlı dönüş
  • resolves ile Promise çözülme simülasyonu
  • rejects ile Promise reddetme simülasyonu
  • callsArgWith ile callback'i tetikleme
  • yields ile Node tarzı callback çağırma
Modül 3
Mock ve Beklenti Kullanımı
  • sinon.mock() ile beklenti nesnesi kurma
  • expects ile beklenen metot tanımlama
  • once, twice ve atLeast ile çağrı sayısı
  • withArgs ile beklenen argüman tanımı
  • verify ile beklentileri topluca doğrulama
  • Mock ile stub/spy kullanımı arasındaki fark
Modül 4
Hata ve Kenar Senaryolar
  • Hata fırlatan bağımlılığı stub ile test etme
  • Promise reddini yakalama ve doğrulama
  • Zincirli çağrılarda stub kurulumu
  • Yan etkisi olan metotları izole etme
  • Beklenmeyen çağrıları mock ile yakalama
  • Aşırı mock kullanımının kırılganlık riski
Günün hedefiKatılımcı fake timer ile zamanı, fake server ile ağ çağrılarını simüle eder, sandbox ile kurulum/temizliği yönetir ve öğrendiklerini izole bir test paketinde birleştirir.
Modül 1
Fake Timers ve Zaman
  • useFakeTimers ile sahte saat kurma
  • clock.tick ile zamanı ileri sarma
  • setTimeout ve setInterval'i test etme
  • Date nesnesini sabitleyerek doğrulama
  • Debounce ve throttle kodunu test etme
  • clock.restore ile gerçek zamana dönme
Modül 2
Sahte XHR ve Sunucu
  • useFakeXMLHttpRequest ile istek yakalama
  • fakeServer ile sahte yanıt tanımlama
  • respondWith ile durum kodu ve gövde verme
  • autoRespond ile otomatik yanıt akışı
  • AJAX çağrısı yapan kodu ağsız test etme
  • nise kütüphanesiyle ilişki ve ayrım
Modül 3
Sandbox ve Matcher'lar
  • sinon.createSandbox() ile izole alan kurma
  • sandbox.restore ile toplu temizlik
  • afterEach içinde otomatik temizleme
  • sinon.match ile esnek argüman eşleştirme
  • match.string ve match.object tip kontrolü
  • match.has ile nesne property eşleştirme
Modül 4
Bitirme Projesi: İzole Test Paketi
  • Ağ ve zaman bağımlı bir modül seçme
  • Bağımlılıkları stub ile izole etme
  • Spy ile etkileşimleri doğrulama
  • Fake timer ile zamana bağlı kodu test etme
  • Sandbox ile temiz kurulum ve temizlik
  • Coverage ile test yeterliliğini ölçme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Test doubles

Spy, stub, mock ve fake arasındaki farkları kavrar, her senaryoda doğru test double türünü bilinçle seçersiniz.

✅
Spy kullanımı

sinon.spy ile çağrıları gözlemler, calledWith ve callCount ile argüman ve çağrı sayısını güvenle doğrularsınız.

✅
Stub ile davranış

Stub ile bağımlılıkların davranışını değiştirir, returns, throws ve resolves ile dönüş ve hata senaryolarını kurarsınız.

✅
Asenkron izolasyon

resolves ve rejects ile Promise'leri, callsArgWith ile callback'leri simüle ederek asenkron kodu izole test edersiniz.

✅
Mock beklentileri

sinon.mock ile çağrı beklentilerini önceden tanımlar, verify ile topluca doğrular ve aşırı mock riskini değerlendirirsiniz.

✅
Zaman kontrolü

Fake timer ve clock.tick ile setTimeout, setInterval ve Date'i kontrol ederek zamana bağlı kodu kararlı test edersiniz.

✅
Ağ simülasyonu

Fake XHR ve fakeServer ile AJAX çağrılarını ağa çıkmadan simüle eder, durum kodu ve yanıt gövdesini test edersiniz.

✅
Sandbox disiplini

Sandbox ve matcher'larla temiz kurulum/temizlik kurar, izole ve sızıntısız bir test paketini uçtan uca geliştirirsiniz.

Kimler İçin Uygundur?

  • JavaScript ve Node.js ile test yazan
  • dış bağımlılıkları (ağ
  • zaman
  • veritabanı) izole ederek hızlı
  • güvenilir unit testler kurmak isteyen geliştiriciler ile QA mühendisleri için uygundur

Sıkça Sorulan Sorular

SinonJS ne işe yarar ve neden gereklidir?
SinonJS, testlerde gerçek bağımlılıkların yerine geçen test doubles (spy, stub, mock, fake) sağlar. Böylece ağ, zaman veya veritabanı gibi dış sistemlere bağlı kodu bu sistemlere çıkmadan, hızlı ve deterministik biçimde test edebilirsiniz. Ayrıca bir fonksiyonun hangi argümanla kaç kez çağrıldığını doğrulamanızı sağlar.
Spy, stub ve mock arasındaki fark nedir?
Spy bir fonksiyonu değiştirmeden sarmalar ve çağrılarını gözlemler. Stub ise davranışı değiştirir: belirli bir değer döndürebilir, hata fırlatabilir veya Promise çözebilir. Mock ise önceden beklentiler (kaç kez, hangi argümanla çağrılacağı) tanımlar ve verify ile topluca doğrular. Eğitimde üçü de örneklerle ayrıştırılır.
Bu eğitim için hangi ön bilgi gerekir?
Temel ve asenkron JavaScript (fonksiyon, callback, Promise) ile Mocha gibi bir koşucuda describe/it yapısında test yazma deneyimi beklenir. Node.js ve npm kullanımı önerilir. Eğitim orta seviyedir; test yazmaya tümüyle yabancı olanlar için kısa bir hazırlık faydalı olur.
Hangi test koşucusu ve assertion kütüphanesiyle kullanılıyor?
SinonJS bir koşucu değildir; test doubles sağlar. Eğitimde Mocha koşucusu ve Chai assertion kütüphanesi ile entegrasyon gösterilir; sinon-chai ile okunabilir assertion söz dizimi kullanılır. Aynı yaklaşım Jasmine veya Jest gibi diğer ortamlara da 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. Sertifika tamamlanan modülleri ve kurulan izole test paketi projesini belgeler; kurumsal gruplar için içerik, ekibin test altyapısına ve kod tabanına göre özelleştirilebilir.

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 in JavaScript: SinonJS Eğitimi Sertifika Kodu DV-2026XX00 Tarih 14.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

JavaScript ve TypeScriptJavaScript: Form Validation & Async Programming Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Form Validation & Async Programming Eğitimi

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

JavaScript ile form doğrulama, Constraint Validation API, Promise, async/await ve Fetch API ile asenkron programlamayı uygulamalı öğrenin. Orta seviye eğitim.

Detayları Gör →
JavaScript ve TypeScriptJavaScript: Functions & Arrays in JavaScript Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Functions & Arrays in JavaScript Eğitimi

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

JavaScript fonksiyonları, kapsam, closure ve map, filter, reduce gibi dizi yöntemlerini uygulamalı öğrenin. İşlevsel veri işleme için orta seviye eğitim.

Detayları Gör →
JavaScript ve TypeScriptJavaScript: Managing Data Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Managing Data Eğitimi

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

JavaScript ile veri yapıları, map, filter, reduce dönüşümleri, değişmezlik, JSON ve localStorage ile veri yönetimini uygulamalı öğrenin. Orta seviye eğitim.

Detayları Gör →
JavaScript ve TypeScriptJavaScript: Objects Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Objects Eğitimi

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

JavaScript nesneleri, prototip zinciri, Object.create, class söz dizimi, kalıtım ve kapsüllemeyi uygulamalı öğrenin. Nesne tabanlı programlama orta seviye eğiti

Detayları Gör →
JavaScript ve TypeScriptJavaScript: Types, Operators, & Control Structures in JavaScript Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Types, Operators, & Control Structures in JavaScript Eğitimi

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

JavaScript veri tipleri, tip dönüşümü, operatörler, operatör önceliği ve koşul, döngü, hata yönetimi gibi kontrol yapılarını uygulamalı öğrenin. Orta seviye eği

Detayları Gör →
JavaScript ve TypeScriptJavaScript: Working with the DOM & Events Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JavaScript: Working with the DOM & Events Eğitimi

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

JavaScript ile DOM seçimi, manipülasyon, eleman oluşturma, olay dinleme, yayılım ve delegasyonu uygulamalı öğrenin. Dinamik arayüz için orta seviye eğitim.

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