📐 H4 · JSON Schema Validation ile contract testi

H4 · JSON Schema Validation ile: H2'de her alanı TEK TEK doğrulamıştın (`title`, `severity`, ...); JSON Schema Validation ise F4'te gördüğün ŞEMANIN TAMAMINI TEK bir satırda doğr

H2'de her alanı TEK TEK doğrulamıştın (`title`, `severity`, ...); JSON Schema Validation ise F4'te gördüğün ŞEMANIN TAMAMINI TEK bir satırda doğrular: `matchesJsonSchemaInClasspath("bug-schema.json")`. Bu, F5'teki "contract defect" avcılığını OTOMATİKLEŞTİRİR — artık her response'u elle karşılaştırmak yerine, spec'ten üretilen bir JSON Schema dosyasını REST Assured'a "bunu her zaman kontrol et" dersin. Peki neden hâlâ H2'deki tek tek `.body(...)` doğrulamalarını da kullanıyoruz, sadece şema doğrulaması YETMEZ mi? Çünkü şema doğrulaması sadece ŞEKLİ (tip, zorunlu alan) kontrol eder — belirli bir DEĞERİ (örn. "title tam olarak bu metin olmalı") kontrol ETMEZ; ikisi TAMAMLAYICIDIR: şema "yapı doğru mu", tek tek `.body()` "içerik doğru mu" sorusuna cevap verir. **Derin JSON Schema Validation rehberi için → `/rest-assured` sayfasına bak.**

🎬 F5'teki Avı Otomatikleştirmek

Elle karşılaştırma (F5)

Her koşumda otomatik kontrol

F5'te contract defect'leri ELLE, spec'i gerçek response'la karşılaştırarak buluyordun.

F4/F6'daki şema bir `bug-schema.json` dosyasına dönüştürülür.

`matchesJsonSchemaInClasspath(...)` bu dosyayı HER test koşumunda otomatik kontrol eder — elle karşılaştırma artık geçmişte kaldı.

Şemadan Otomatik Contract Testine

F4/F6'daki JSON şemasını bir .json dosyası olarak projeye ekle.

json-schema-validator bağımlılığını ekle, matchesJsonSchemaInClasspath'i import et.

then() zincirine ekle…

.body(matchesJsonSchemaInClasspath(...)) ile her koşumda otomatik kontrol kur.

JSON Schema Validation kurma sürecini sırala.

F4/F6'daki şemayı bir .json dosyasına aktar