Ana içeriğe geç

Yanıtlar ve Doğrulamalar

Durum doğrulaması​

res.assertStatus(201);

Gövde doğrulamaları​

res.assertBodyContains("success");
res.assertJson("$.user.name", "Alice");

JSONPath çıkarma​

String token = res.json("$.token");
int id = res.json("$.user.id", Integer.class);
JsonNode node = res.jsonNode("$.user.metadata"); // doğrudan Jackson JsonNode erişimi

Gelişmiş JSON Doğrulamaları​

// Sayısal karşılaştırmalar
res.assertJsonGreaterThan("$.score", 85.0);
res.assertJsonLessThan("$.responseTimeMs", 500.0);

// Alt metin (substring) kontrolü
res.assertJsonContains("$.email", "@company.com");

// Mantıksal (boolean) kontroller
res.assertJsonTrue("$.verified");
res.assertJsonFalse("$.isSuspended");

// Özel fonksiyonel koşullar (predicates)
res.assertJson("$.roles", node -> node.isArray() && node.size() >= 2, "en az 2 kullanıcı rolü");

Nesneye dönüştürme (deserialization)​

User user = res.asObject(User.class);

Şema doğrulaması​

Yanıt yapısını bir JSON Schema dosyasına göre doğrulayın:

res.assertStatus(200).assertSchema("schemas/user.json");

Şema dosyalarını src/test/resources/schemas/ altına yerleştirin. Aşağıdaki Şema Doğrulaması bölümüne bakın.

Ham erişim​

int    status   = res.status();
String body = res.body();
long duration = res.durationMs();

Akıcı zincirleme​

ApiClient.get("/api/users/1")
.send()
.assertStatus(200)
.assertJson("$.name", "Alice")
.assertJsonTrue("$.active")
.assertSchema("schemas/user.json");