WORKING WITH JASMINE SPIES & USING JASMINE WITH NODE.JS EĞİTİMİ

Jasmine spy'larıyla davranışı test edin

Jasmine ile BDD testleri yazın, spy'larla bağımlılıkları izole edip Node.js'te otomatikleştirin

Jasmine Spies & Using Jasmine with Node.js Eğitimi, Jasmine çatısıyla davranış odaklı testler yazmayı ve bunu Node.js'te otomatikleştirmeyi öğretir.

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

Eğitim Hakkında

Suite ve matcher'lardan spy stratejilerine, Node.js kurulumundan asenkron teste ve CI'ya

Jasmine Spies & Using Jasmine with Node.js Eğitimi, Jasmine çatısıyla davranış odaklı (BDD) testler yazmayı ve bunu Node.js'te otomatikleştirmeyi öğretir. Katılımcılar suite/spec yapısını, yerleşik matcher'ları ve spy'larla bağımlılık izolasyonunu uygular; spyOn, createSpy, callFake ve returnValue stratejilerini kullanır. Node.js kurulumu, asenkron test, modül mock'lama, custom matcher ve CI entegrasyonu işlenir. Program gerçek bir modülün test paketini kurmakla tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; Jasmine kavramları spy stratejileri ve Node.js kurulumuyla kodlanarak gerçek bir test paketine dönüştürülür.

Seviye

Orta Seviye — Jasmine ile BDD tarzı test, spy stratejileri ve Node.js ortamında test otomasyonu

Öğrenme Metodu

Her kavram önce tarayıcıda sonra Node.js'te kodlanır; dört gün boyunca spy odaklı izole bir test paketi adım adım geliştirilir.

Neden Bu Eğitim?

🧪BDD disiplini

Jasmine'in describe/it yapısıyla davranış odaklı test yazarak okunur, düzenli ve bakımı kolay test paketleri kurmayı öğrenirsiniz.

🕵️Spy'ların gücü

Jasmine spy'larıyla bağımlılıkları izole eder, çağrıları gözlemler ve davranışı değiştirerek dış sistemlere bağlı kodu güvenle sınarsınız.

⚙️Node.js otomasyon

Jasmine'i Node.js ortamında kurup CI'ya bağlayarak testleri her değişiklikte otomatik koşan bir güvenlik ağına dönüştürürsünüz.

Anahtar Konular

jasmine eğitimijasmine spies eğitimijasmine node.jsjavascript bdd testspy stub javascriptnode.js test kursujavascript unit test eğitimitest otomasyonu javascriptjasmine matcherjavascript test çatısı
“Bir spy, kodun ne döndürdüğünü değil, dünyayla nasıl konuştuğunu test etmenizi sağlar; davranışı görünür kılar.”

Ö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
Node.js ve npm

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

3
Test fikri

Daha önce herhangi bir test yazmış olmak faydalıdır; zorunlu değildir, kavramlar baştan anlatılır.

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ı Jasmine'i kurar, describe/it ile suite ve spec yapısını kavrar, yerleşik matcher'larla assertion yazar ve beforeEach/afterEach hook'larıyla kurulum yönetir.
Modül 1
Jasmine'e Giriş ve Kurulum
  • BDD ve davranış odaklı test felsefesi
  • Jasmine'in standalone paket ile kurulumu
  • SpecRunner.html ile tarayıcıda çalıştırma
  • Jasmine'in Mocha ve Jest'ten farkı
  • Test dosyası adlandırma ve dizin düzeni
  • İlk suite ve spec'i yazıp koşturma
Modül 2
Suite ve Spec Yapısı
  • describe ile test grubu (suite) tanımlama
  • it ile tekil test (spec) yazma
  • İç içe describe ile hiyerarşik gruplama
  • Okunur spec adlarıyla niyeti belgeleme
  • fit ve fdescribe ile odaklı çalıştırma
  • xit ve xdescribe ile testi geçici atlama
Modül 3
Yerleşik Matcher'lar
  • expect ve toBe ile referans eşitliği
  • toEqual ile derin (deep) eşitlik kontrolü
  • toContain ile dizi ve string içeriği
  • toBeTruthy, toBeFalsy ve toBeNull kontrolü
  • toThrow ve toThrowError ile hata testi
  • not ile matcher'ı tersine çevirme
Modül 4
Kurulum ve Temizlik Hook'ları
  • beforeEach ile her spec öncesi hazırlık
  • afterEach ile her spec sonrası temizlik
  • beforeAll ve afterAll ile tek seferlik kurulum
  • Paylaşılan durumu hook'larda yönetme
  • this ve değişkenlerle test verisi taşıma
  • Hook sırası ve kapsam (scope) kuralları
Günün hedefiKatılımcı spyOn ve createSpy ile spy oluşturur, callFake, returnValue ve callThrough stratejilerini uygular, spy çağrılarını izler ve argümanları matcher'larla doğrular.
Modül 1
Spy Oluşturma Yolları
  • spyOn ile var olan metodu izleme
  • jasmine.createSpy ile bağımsız spy üretme
  • createSpyObj ile çoklu metot sahtesi
  • Spy'ın orijinal metodu değiştirmesi
  • Spy'ın otomatik olarak sıfırlanması
  • Spy kullanımının uygun olduğu durumlar
Modül 2
Spy Stratejileri
  • and.returnValue ile sabit dönüş verme
  • and.callFake ile özel davranış tanımlama
  • and.callThrough ile orijinali çağırma
  • and.throwError ile hata fırlatma
  • and.returnValues ile sıralı dönüşler
  • and.stub ile çağrıyı tümden engelleme
Modül 3
Çağrı İzleme (calls)
  • toHaveBeenCalled ile çağrı doğrulama
  • toHaveBeenCalledWith ile argüman eşleme
  • toHaveBeenCalledTimes ile çağrı sayısı
  • calls.argsFor ile belirli çağrı argümanı
  • calls.count ve calls.mostRecent kullanımı
  • calls.reset ile çağrı geçmişini sıfırlama
Modül 4
Asimetrik Matcher'lar
  • jasmine.any ile tür bazlı argüman eşleme
  • jasmine.objectContaining ile kısmi nesne
  • jasmine.arrayContaining ile kısmi dizi
  • jasmine.stringMatching ile regex eşleme
  • Spy argümanlarını esnek doğrulama
  • Asimetrik matcher'larla kırılganlığı azaltma
Günün hedefiKatılımcı Jasmine'i Node.js'te kurar, jasmine.json ile yapılandırır, asenkron testleri done ve async ile yazar, modül bağımlılıklarını spy ile mock'lar.
Modül 1
Node.js'te Jasmine Kurulumu
  • jasmine paketini npm ile projeye ekleme
  • jasmine init ile yapı oluşturma
  • spec/support/jasmine.json yapılandırması
  • spec_dir ve spec_files desenlerini ayarlama
  • npm test script'ine jasmine bağlama
  • CommonJS ve ES modülüyle test yazımı
Modül 2
Asenkron Test Yazımı
  • done callback ile asenkron spec yazma
  • async/await ile Promise tabanlı test
  • Zaman aşımı (timeout) süresini ayarlama
  • Hata durumunda done.fail kullanımı
  • jasmine.clock ile sahte zaman kontrolü
  • setTimeout ve setInterval'i test etme
Modül 3
Modül ve Bağımlılık Mock'lama
  • require edilen modülü spy ile değiştirme
  • Bağımlılık enjeksiyonu ile test kolaylığı
  • HTTP ve dosya işlemlerini spy ile izole etme
  • proxyquire benzeri yaklaşımlarla mock
  • Veritabanı çağrılarını sahteleme
  • Yan etkileri izole ederek saf test kurma
Modül 4
Hata Ayıklama ve Raporlama
  • Başarısız spec çıktısını okuma
  • Odaklı çalıştırma ile sorunu daraltma
  • node --inspect ile test ayıklama
  • Özel reporter ile çıktı biçimlendirme
  • jasmine-spec-reporter ile okunur rapor
  • Flaky (kararsız) testleri tespit etme
Günün hedefiKatılımcı custom matcher yazar, coverage ölçer, testleri CI süreçlerine bağlar ve öğrendiklerini spy odaklı izole bir test paketinde uçtan uca birleştirir.
Modül 1
Custom Matcher Yazma
  • addMatchers ile özel matcher tanımlama
  • compare fonksiyonu ile sonuç üretme
  • pass ve message alanlarını döndürme
  • Negatif durum için anlamlı mesaj kurma
  • Alan odaklı okunur matcher tasarlama
  • beforeEach içinde matcher kaydetme
Modül 2
Kod Kapsamı (Coverage)
  • nyc (Istanbul) ile coverage ölçümü
  • Satır, dal ve fonksiyon kapsamı okuma
  • Kapsam eşiği belirleyip zorunlu kılma
  • HTML coverage raporunu inceleme
  • Kapsanmayan dalları test ile tamamlama
  • Coverage'ı kalite göstergesi olarak yorumlama
Modül 3
CI Entegrasyonu ve Kapı
  • Testleri npm script ile standartlaştırma
  • GitHub Actions ile her push'ta çalıştırma
  • Başarısız testte build'i kırma
  • JUnit XML raporuyla CI entegrasyonu
  • Pull request'te test kapısı kurma
  • Coverage raporunu CI'da yayımlama
Modül 4
Bitirme Projesi: Test Paketi
  • Bağımlılıklı bir Node.js modülü seçme
  • Suite/spec yapısında testleri kurma
  • Spy ile bağımlılıkları izole etme
  • Asenkron ve hata senaryolarını test etme
  • Custom matcher ile okunurluğu artırma
  • Coverage ölçüp CI hattına bağlama

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Jasmine yapısı

describe/it ile suite ve spec kurar, iç içe gruplama ve okunur adlarla davranış odaklı düzenli test paketleri yazarsınız.

✅
Matcher hâkimiyeti

toBe, toEqual, toContain ve toThrow gibi yerleşik matcher'larla değer, içerik ve hata senaryolarını güvenle doğrularsınız.

✅
Spy oluşturma

spyOn ve createSpy ile var olan metotları izler, createSpyObj ile çoklu metot sahtesi üretip bağımlılıkları izole edersiniz.

✅
Spy stratejileri

returnValue, callFake ve callThrough gibi stratejilerle spy davranışını kontrol eder, dönüş ve hata senaryolarını kurarsınız.

✅
Çağrı doğrulama

toHaveBeenCalledWith ve calls API'si ile çağrı sayısını ve argümanları izler, asimetrik matcher'larla esnek doğrularsınız.

✅
Node.js testleri

Jasmine'i Node.js'te kurar, jasmine.json ile yapılandırır ve modül bağımlılıklarını spy ile mock'layarak izole test yazarsınız.

✅
Asenkron test

done ve async/await ile asenkron testler yazar, jasmine.clock ile sahte zaman kullanarak zamana bağlı kodu kararlı test edersiniz.

✅
CI ve coverage

Custom matcher yazar, nyc ile coverage ölçer ve testleri CI süreçlerine bağlayarak otomatik çalışan bir güvenlik ağı kurarsınız.

Kimler İçin Uygundur?

  • JavaScript ve Node.js ile çalışan
  • Jasmine çatısıyla düzenli ve bakımı kolay testler yazmak
  • spy'larla bağımlılıkları izole etmek isteyen geliştiriciler
  • QA mühendisleri için uygundur

Sıkça Sorulan Sorular

Jasmine spy'ları ne işe yarar?
Jasmine spy'ları, bir fonksiyonu izlemenizi ve davranışını kontrol etmenizi sağlar. spyOn ile var olan bir metodu sarmalar, çağrı sayısını ve argümanları gözlemler; returnValue, callFake ve callThrough stratejileriyle dönüş değerini veya davranışını değiştirirsiniz. Böylece dış bağımlılıkları izole ederek hızlı ve deterministik testler yazarsınız.
Jasmine ile Mocha veya Jest arasındaki fark nedir?
Jasmine, assertion (matcher), spy ve test koşucusunu tek pakette sunan bütünleşik bir BDD çatısıdır; ek kütüphane gerekmeden çalışır. Mocha yalnızca koşucudur ve Chai/Sinon ister; Jest ise Jasmine'den türemiş, snapshot ve otomatik mock gibi eklerle gelir. Eğitimde Jasmine'in bütünleşik yaklaşımı Node.js'te uygulanır.
Bu eğitim için hangi ön bilgi gerekir?
Temel ve asenkron JavaScript (fonksiyon, callback, Promise) ile Node.js ve npm kullanımına aşinalık beklenir. Daha önce test yazmış olmak faydalıdır ancak zorunlu değildir; kavramlar baştan anlatılır. Eğitim orta seviyededir ve spy odaklı izole test yazmaya derinlemesine girer.
Jasmine'i Node.js'te nasıl kullanıyoruz?
Eğitimde jasmine npm paketi kurulur, jasmine init ile yapı oluşturulur ve spec/support/jasmine.json ile spec dizini ve dosya desenleri yapılandırılır. Asenkron testler done ve async/await ile yazılır, modül bağımlılıkları spy ile mock'lanır ve testler npm test script'ine bağlanarak CI'da çalıştırılı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. Sertifika tamamlanan modülleri ve kurulan test paketi projesini belgeler; kurumsal gruplar için içerik, ekibin kullandığı test altyapısı 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. Working with Jasmine Spies & Using Jasmine with Node.js Eğit 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

JavaScript ve TypeScriptSmart Contracts & Hyperledger Fabric: Working with Fabric Chaincode in Node.js Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

Smart Contracts & Hyperledger Fabric: Working with Fabric Chaincode in Node.js Eğitimi

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

Hyperledger Fabric mimarisinden Node.js ile chaincode geliştirmeye: Contract, ChaincodeStub, CouchDB sorguları, özel veri ve dağıtım eğitimi.

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

Svelte JS Eğitimi

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

Svelte reaktivitesinden store, geçiş ve SvelteKit ile sunucu tarafı render içeren tam uygulamaya kadar uygulamalı Svelte JS eğitimi.

Detayları Gör →
JavaScript ve TypeScriptTypeScript ile Ölçeklenebilir Uygulama Geliştirme Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

TypeScript ile Ölçeklenebilir Uygulama Geliştirme Eğitimi

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

İleri TypeScript tipleri, SOLID ve bağımlılık enjeksiyonu, derleme, tanım dosyaları, linting ve test ile ölçeklenebilir uygulama geliştirme eğitimi.

Detayları Gör →
JavaScript ve TypeScriptUnit Testing in JavaScript: Exploring & Configuring the Mocha Testing Framework Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

Unit Testing in JavaScript: Exploring & Configuring the Mocha Testing Framework Eğitimi

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

Mocha test çatısını keşfet ve yapılandır: describe, kancalar, asenkron test, .mocharc, reporter, paralel çalıştırma ve nyc kapsam eğitimi.

Detayları Gör →
JavaScript ve TypeScriptUnit Testing in JavaScript: Mocha & Chai Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

Unit Testing in JavaScript: Mocha & Chai Eğitimi

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

Mocha ile test çalıştırıp Chai'nin assert, expect ve should stilleriyle doğrulama yazma; asenkron, sinon-chai ve chai-http ile uygulamalı eğitim.

Detayları Gör →
JavaScript ve TypeScriptUnit Testing in JavaScript: Mocha & Unit.js Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

Unit Testing in JavaScript: Mocha & Unit.js Eğitimi

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

Mocha ile test çalıştırıp Unit.js'in akıcı test.value API'siyle doğrulama yazma; casus, HTTP testi ve given-when-then ile uygulamalı eğitim.

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