⚙️ Kurulum ve Proje Yapısı
Kurulum ve Proje Yapısı: pom.xml + BaseTest sınıfı, bir araba fabrikasındaki "kalıp çerçevesi" gibidir: kalıp bir kez kuruldu mu her seri üretim arabası aynı çerçeveden geçer — v
pom.xml + BaseTest sınıfı, bir araba fabrikasındaki "kalıp çerçevesi" gibidir: kalıp bir kez kuruldu mu her seri üretim arabası aynı çerçeveden geçer — vidalama robotunun her seferinde çerçeveyi sıfırdan yapmasına gerek kalmaz. "Zaten her testte baseUri'yi yazabiliyorum, neden ayrı bir BaseTest'e taşıyayım?" Çünkü baseUri, auth header ve loglama ayarlarını her test sınıfında tekrarlarsan, bir gün staging URL'si production URL'siyle değişince 70 test dosyasını tek tek düzeltmek zorunda kalırsın — bu 70 satır değişikliği yerine 1 satır farkıdır. Java'da @BeforeAll ile JUnit test fixture'ları kurarken ne hissediyorsan BaseTest'in `RestAssured.baseURI` satırı da tam olarak aynı şeydir: bir kez yaz, hep geçerli. QA açısından kritik nokta: CI/CD pipeline'ında staging ve production ortamları aynı kodla test edilmelidir; BaseTest'teki tek bir `System.getenv("BASE_URL")` bu senkronizasyonu sağlar ve yanlış ortama yanlış test gitmesinin önüne geçer.
Maven pom.xml — Tüm Bağımlılıklar
Micro Lab: REST Assured assertion yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
pom.xml'deki 8 Bağımlılık Hangi Görevi Üstlenir?
rest-assured + json-path +…
`rest-assured` + `json-path` + `json-schema-validator` ÜÇLÜSÜ, sırasıyla istek/yanıt zincirini, değer çekmeyi ve kontrat doğrulamasını sağlar — hepsi ` test `, production jar'ına asla karışmaz.
junit-jupiter testleri ÇALIŞTIRIR…
`junit-jupiter` testleri ÇALIŞTIRIR, `hamcrest` ise assertion'ları OKUNABİLİR yazar — ikisi farklı görev, biri olmadan diğeri anlamsız kalır.
jackson-databind YORUM DEĞİL zorunludur…
`jackson-databind` YORUM DEĞİL zorunludur: POJO'ları JSON'a çeviren tam olarak bu kütüphanedir — eksik olursa `body(request)` çağrısı derleme geçse bile çalışma zamanında patlar.
lombok provided dur…
`lombok` ` provided `dur — sadece DERLEME sırasında getter/setter üretir, çalışan uygulamaya hiçbir kod EKLEMEZ.
REST Assured Proje Yapısı (Kurumsal)