Come verificherai di aver restituito i campi corretti?
sobes.tech AI
Risposta dell'AI
Verificare che vengano restituiti solo i campi necessari può essere fatto in diversi modi, a seconda del tipo di risposta (JSON, XML, ecc.), dello strumento utilizzato e del livello di test (API, E2E):
-
Validazione dello schema di risposta (Schema Validation):
- Il metodo più affidabile.
- Si crea uno schema (JSON Schema, XML Schema) che descrive la struttura e i tipi di dati attesi.
- La risposta viene validata rispetto a questo schema.
- Garantisce la presenza/assenza di campi, i loro tipi e, opzionalmente, espressioni regolari per i valori.
// Esempio di JSON Schema per una risposta utente { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Verifica diretta della presenza/assenza di campi e valori (Field Presence and Value Assertion):
- Analisi della risposta.
- Verifica che ogni campo atteso sia presente.
- Verifica che i campi indesiderati non siano presenti.
- Verifica dei tipi di dati dei campi.
- Verifica dei valori dei campi (rispetto a un valore specifico, espressione regolare, intervallo, ecc.).
# Esempio di verifica di risposta JSON in Python (con requests e pytest) import requests import pytest def test_user_response_fields(): response = requests.get("http://api.example.com/users/1") assert response.status_code == 200 data = response.json() # Verifica della presenza dei campi assert "id" in data assert "name" in data assert "email" in data # Verifica che i campi indesiderati non siano presenti (ad esempio, 'password') assert "password" not in data # Verifica dei tipi di campi assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Verifica dei valori (esempio) assert data["id"] > 0 assert "@" in data["email"] # Verifica semplice del formato email -
Confronto con riferimento (Golden Master / Snapshot Testing):
- Si salva una risposta corretta nota (riferimento).
- La risposta attuale viene confrontata con il riferimento.
- Utile per verificare la stabilità della struttura, ma meno flessibile ai cambiamenti attesi nei dati.
-
Utilizzo di librerie/framework specializzati:
- RestAssured (Java)
- Postman (Newman): permette di scrivere test in JavaScript, inclusi controlli di schema e campi.
- Pytest/unittest con librerie per lavorare con JSON/XML.
La scelta del metodo dipende dalla complessità della struttura della risposta, dai requisiti di precisione della verifica e dallo stack tecnologico utilizzato. La validazione dello schema è lo standard d'oro per i test API, poiché copre tutti gli aspetti della struttura e dei tipi di dati.