UNIT TESTING IN JAVASCRIPT: SHOULD.JS & MUST.JS EĞİTİMİ

Testlerinizi okunabilir assertion'larla yazın

Should.js ve Must.js ile BDD tarzı, zincirlenebilir ve okunabilir doğrulamalar kurun

Unit Testing in JavaScript: Should.js & Must.js Eğitimi, Node.js ortamında okunabilir BDD tarzı doğrulamalar yazmayı öğretir. Program Should.js'in prototype genişleten zincirlenebilir söz dizimi ile Must.js'in prototype'a dokunmayan yaklaşımını kıyaslamalı iş…

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

Eğitim Hakkında

Zincirlenebilir söz diziminden deep equality'ye, hata assertion'larından custom matcher'lara

Should.js & Must.js Eğitimi, Node.js ortamında okunabilir ve BDD tarzı doğrulamalar yazmayı öğretir. Katılımcılar Should.js'in prototype genişleten zincirlenebilir söz dizimini, Must.js'in prototype'a dokunmayan yaklaşımını ve iki kütüphanenin assertion stillerini uygular. Deep equality, tür kontrolü, property doğrulama, hata ve promise assertion'ları, custom assertion yazımı ve Mocha ile entegrasyon işlenir. Program gerçek bir test paketi kurmakla tamamlanır.

Süre ve Format

4 Gün. Her gün dört modül; assertion kavramları Should.js ve Must.js ile kıyaslamalı olarak kodlanarak gerçek bir test paketine dönüştürülür.

Seviye

Orta Seviye — Node.js'te Should.js ve Must.js ile BDD tarzı assertion yazımı, deep equality ve custom matcher

Öğrenme Metodu

Her assertion deseni önce Should.js sonra Must.js ile kodlanır; dört gün boyunca kıyaslamalı bir test paketi adım adım geliştirilir.

Neden Bu Eğitim?

📖Okunabilir testler

BDD tarzı zincirlenebilir assertion'larla testlerinizi cümle gibi okunur hale getirir, bakımını ve gözden geçirmesini kolaylaştırırsınız.

⚖️İki yaklaşımı kıyas

Should.js'in prototype genişletmesi ile Must.js'in dokunmayan felsefesini karşılaştırır, projeye uygun kütüphaneyi bilinçle seçersiniz.

🧩Custom assertion

Kendi alanınıza özgü custom assertion'lar yazarak tekrar eden doğrulamaları sadeleştirir ve test kodunuzu anlamlı biçimde soyutlarsınız.

Anahtar Konular

should.js eğitimimust.js eğitimijavascript unit test eğitiminode.js test kursuassertion kütüphanesibdd test javascriptdeep equality testcustom assertionmocha should.jsjavascript test otomasyonu
“İyi bir assertion yalnızca doğruyu söylemez; başarısız olduğunda nerede yanlış gittiğini de açıkça anlatır.”

Ön Koşullar

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

1
JavaScript bilgisi

Fonksiyon, nesne, dizi ve closure gibi temel 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 package.json yapısına temel düzeyde aşinalık beklenir.

3
Test fikri

Mocha gibi bir test koşucusuyla describe/it yapısını görmüş olmak örnekleri takip etmeyi kolaylaştırı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ı assertion kütüphanelerinin rolünü kavrar, Should.js'i kurar, prototype tabanlı should getter'ını ve zincirlenebilir söz dizimini kullanarak ilk testlerini yazar.
Modül 1
Assertion Kütüphanelerinin Rolü
  • Unit test ve assertion kavramının ilişkisi
  • Assert, expect ve should stillerinin farkı
  • BDD tarzı okunabilir assertion felsefesi
  • Node.js yerleşik assert modülünün sınırları
  • Test koşucusu ile assertion ayrımı
  • Başarısız assertion'ın hata mesajı önemi
Modül 2
Should.js Kurulumu ve Yapısı
  • npm ile should paketini projeye ekleme
  • require('should') ile prototype genişletme
  • should getter'ının Object.prototype'a eklenişi
  • İlk should assertion'ını yazma ve çalıştırma
  • Mocha ile Should.js'i birlikte kullanma
  • should(value) fonksiyonel çağrı biçimi
Modül 3
Zincirlenebilir Söz Dizimi
  • be, have, with gibi bağlaç getter'ları
  • an, a, the ile okunabilirliği artırma
  • equal ve exactly ile değer eşitliği
  • true, false ve ok ile boolean kontrolü
  • Zincirin okunuşu ve niyetin netleşmesi
  • Negatifleme için not getter'ı kullanımı
Modül 4
Temel Değer Kontrolleri
  • String için startWith ve endWith kontrolü
  • match ile düzenli ifade doğrulaması
  • above, below ve within ile sayı aralığı
  • length ve lengthOf ile uzunluk kontrolü
  • type ve instanceof ile tür doğrulama
  • NaN, Infinity gibi özel değer kontrolleri
Günün hedefiKatılımcı nesne ve dizilerde deep equality kurar, property ve key doğrular, fırlatılan hataları ve promise sonuçlarını assertion'larla test eder.
Modül 1
Deep Equality ve Nesneler
  • eql ile derin (deep) eşitlik karşılaştırması
  • equal ile deepEqual arasındaki fark
  • İç içe nesnelerde yapısal karşılaştırma
  • Dizilerde eleman sırası ve içerik eşitliği
  • containEql ile kısmi içerik doğrulama
  • containDeep ile derin kısmi eşleşme
Modül 2
Property ve Key Doğrulama
  • have.property ile özellik varlığı kontrolü
  • property(name, value) ile değer eşleştirme
  • have.keys ve have.ownProperty kullanımı
  • have.enumerable ile sayılabilirlik kontrolü
  • Zincirle iç içe property'ye erişim
  • have.length ile dizi/string uzunluğu
Modül 3
Hata (Error) Assertion'ları
  • throw ve throwError ile hata fırlatma testi
  • Belirli hata mesajını regex ile eşleştirme
  • Belirli hata tipini (Error sınıfı) doğrulama
  • Fonksiyonu sarmalayarak throw'u yakalama
  • Hata fırlatmama durumunu doğrulama
  • Hata property'lerini ayrıca kontrol etme
Modül 4
Promise ve Asenkron Assertion
  • should ile Promise sonucunu doğrulama
  • fulfilled ve rejected durum kontrolü
  • fulfilledWith ile çözülen değeri eşleştirme
  • rejectedWith ile ret nedenini doğrulama
  • async/await ile assertion'ı bekletme
  • finally ve zincirle asenkron test akışı
Günün hedefiKatılımcı Must.js'in prototype genişletmeyen tasarımını kavrar, must getter'ı ile assertion yazar ve Should.js ile Must.js arasındaki kritik davranış farklarını görür.
Modül 1
Must.js Neden Var
  • Should.js'in prototype genişletme riskleri
  • null ve undefined üzerinde should sorunu
  • Must.js'in prototype'a dokunmama felsefesi
  • Object.prototype kirlenmesini önleme
  • Fonksiyonel demand(value) kullanım biçimi
  • Hangi projede hangi yaklaşımın uygunluğu
Modül 2
must Söz Dizimi ve Yapısı
  • value.must getter'ı ile assertion başlatma
  • be, have ve a/an bağlaç getter'ları
  • equal ve eql ile değer ve derin eşitlik
  • true, false, truthy ve falsy kontrolleri
  • not ile olumsuz assertion kurma
  • demand() ile null güvenli assertion
Modül 3
Tür ve Değer Kontrolleri
  • number, string, boolean tür doğrulaması
  • instanceof ve instanceOf ile sınıf kontrolü
  • above, below, between ile sayı aralığı
  • match ile regex, include ile içerik kontrolü
  • empty ile boş değer doğrulaması
  • permutationOf ile dizi eleman kümesi
Modül 4
Nesne, Hata ve Promise
  • have.property ve have.keys doğrulaması
  • have.ownProperty ve enumerable kontrolü
  • throw ile hata fırlatma assertion'ı
  • Hata mesajı ve türünü eşleştirme
  • Promise için resolve ve reject kontrolü
  • then ile çözülen değeri doğrulama
Günün hedefiKatılımcı Should.js ile Must.js'i kriterlerle karşılaştırır, custom assertion yazar, Mocha ile entegre test paketi kurar ve gerçek bir modülü uçtan uca test eder.
Modül 1
Should.js ve Must.js Kıyası
  • Prototype genişletme ve yan etki farkı
  • Söz dizimi okunabilirliği karşılaştırması
  • null/undefined güvenliği açısından fark
  • Assertion kapsamı ve mesaj kalitesi
  • Topluluk, bakım ve ekosistem durumu
  • Takıma göre karar matrisi oluşturma
Modül 2
Custom Assertion Yazma
  • Should.js'te Assertion.add ile ekleme
  • this.obj ve this.params ile değere erişim
  • this.assert ile başarı/başarısızlık kararı
  • Anlamlı ve açık hata mesajı tasarlama
  • Must.js'te prototip tabanlı genişletme
  • Alan odaklı custom assertion kütüphanesi
Modül 3
Mocha ile Entegrasyon
  • describe ve it ile test organizasyonu
  • before/after hook'larda hazırlık ve temizlik
  • Asenkron testlerde done ve async kullanımı
  • .mocharc ve script ile test çalıştırma
  • nyc ile kod kapsamı (coverage) ölçümü
  • Başarısız testleri okuma ve ayıklama
Modül 4
Bitirme Projesi: Test Paketi
  • Gerçek bir Node.js modülü seçme
  • Should.js ile okunabilir test paketi kurma
  • Aynı testleri Must.js ile yeniden yazma
  • Deep equality, hata ve promise senaryoları
  • Custom assertion ile tekrarları sadeleştirme
  • Coverage raporu ile test yeterliliğini ölçme

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Assertion stilleri

assert, expect ve should stillerini ayırt eder, BDD tarzı okunabilir doğrulamanın test kalitesine katkısını açıklarsınız.

✅
Should.js hâkimiyeti

Should.js'i kurar, zincirlenebilir söz dizimini kullanır ve be, have, with gibi getter'larla okunur testler yazarsınız.

✅
Deep equality

Nesne ve dizilerde eql ile derin eşitlik kurar, containEql ve containDeep ile kısmi içerik doğrulamasını uygularsınız.

✅
Hata testleri

Fonksiyonların fırlattığı hataları throw ile test eder, hata mesajını ve türünü regex ve sınıf ile doğrularsınız.

✅
Asenkron doğrulama

Promise sonuçlarını fulfilled ve rejected ile test eder, async/await kullanarak asenkron assertion akışını kurarsınız.

✅
Must.js farkı

Must.js'in prototype'a dokunmayan felsefesini kavrar, must söz dizimiyle null güvenli assertion'lar yazarsınız.

✅
Custom assertion

Kendi alanınıza özgü custom assertion'lar yazar, anlamlı hata mesajlarıyla tekrar eden doğrulamaları sadeleştirirsiniz.

✅
Entegre test paketi

Mocha ile entegre bir test paketi kurar, coverage ölçer ve iki kütüphaneyi kriterlerle kıyaslayarak doğru seçimi yaparsınız.

Kimler İçin Uygundur?

  • Node.js ile test yazan
  • assertion kütüphaneleri arasındaki farkları anlamak isteyen
  • testlerini daha okunabilir hale getirmek isteyen JavaScript geliştiricileri ile QA mühendisleri için uygundur

Sıkça Sorulan Sorular

Should.js ile Must.js arasındaki temel fark nedir?
Should.js, Object.prototype'a should getter'ı ekleyerek value.should söz dizimini mümkün kılar; bu okunabilir olsa da prototype'ı genişletir ve null/undefined üzerinde sorun çıkarabilir. Must.js ise prototype'a dokunmaz, value.must söz dizimi ve demand() fonksiyonuyla aynı okunabilirliği yan etkisiz sağlar. Eğitimde ikisi kıyaslamalı işlenir.
Bu eğitim için hangi ön bilgi gerekir?
Temel JavaScript (fonksiyon, nesne, dizi, closure) ve Node.js ile npm kullanımına aşinalık beklenir. Mocha gibi bir test koşucusunda describe/it yapısını görmüş olmak faydalıdır. Eğitim orta seviyedir; test yazmaya tümüyle yabancı olanlar için kısa bir hazırlık önerilebilir.
Hangi test koşucusuyla kullanılıyor?
Should.js ve Must.js birer assertion kütüphanesidir; testleri çalıştırmak için bir koşucuya ihtiyaç duyulur. Eğitimde Mocha ile entegrasyon gösterilir: describe/it yapısı, before/after hook'ları, asenkron testler ve nyc ile coverage ölçümü uygulanır. Aynı yaklaşım başka koşucularla da çalışır.
Custom assertion yazmayı öğretiyor musunuz?
Evet. Should.js'te Assertion.add ile this.obj, this.params ve this.assert kullanarak kendi assertion'larınızı yazarsınız; Must.js tarafında da prototip tabanlı genişletme gösterilir. Amaç, alanınıza özgü tekrar eden doğrulamaları anlamlı ve okunabilir custom assertion'lara dönüştürmektir.
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. Unit Testing in JavaScript: Should.js & Must.js Eğitimi 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 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 →
JavaScript ve TypeScriptjQuery & TypeScript Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

jQuery & TypeScript Eğitimi

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

jQuery ile DOM, olay ve AJAX; TypeScript ile tip sistemi, arayüz ve generic; @types/jquery ile tip güvenli jQuery öğreten uygulamalı eğitim.

Detayları Gör →
JavaScript ve TypeScriptJumpStart to using Modern JavaScript (TT4110) Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

JumpStart to using Modern JavaScript (TT4110) Eğitimi

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

ES6 ve sonrası modern JavaScript: let/const, arrow, destructuring, class, modül, Promise, async/await ve fetch öğreten uygulamalı eğitim.

Detayları Gör →
JavaScript ve TypeScriptLearn to Code - Using JavaScript Eğitimi
Web ve Ön Yüz Geliştirme Eğitimleri

Learn to Code - Using JavaScript Eğitimi

4 günBaşlangıçOnline / Yüz Yüze / Hibrit

Sıfırdan programlama: değişken, koşul, döngü, fonksiyon, dizi, nesne ve DOM ile JavaScript öğreten başlangıç seviyesi uygulamalı eğitim.

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