¿Cómo verificarás que has devuelto los campos correctos?
sobes.tech AI
Respuesta de la IA
Verificar que se devuelven exactamente los campos necesarios puede hacerse de varias maneras, dependiendo del tipo de respuesta (JSON, XML, etc.), la herramienta utilizada y el nivel de prueba (API, E2E):
-
Validación de esquema de respuesta (Schema Validation):
- La forma más confiable.
- Se crea un esquema (JSON Schema, XML Schema) que describe la estructura y los tipos de datos de la respuesta esperada.
- La respuesta se valida contra este esquema.
- Garantiza la presencia/ausencia de campos, sus tipos y, opcionalmente, expresiones regulares para los valores.
// Ejemplo de JSON Schema para una respuesta con usuario { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] } -
Verificación directa de presencia/ausencia de campos y valores (Field Presence and Value Assertion):
- Análisis de la respuesta.
- Verificación de que cada campo esperado esté presente.
- Verificación de que los campos no deseados no estén presentes.
- Verificación de los tipos de datos de los campos.
- Verificación de los valores de los campos (en relación con un valor específico, expresión regular, rango, etc.).
# Ejemplo de verificación de respuesta JSON en Python (usando requests y 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() # Verificación de presencia de campos assert "id" in data assert "name" in data assert "email" in data # Verificación de que los campos no deseados no estén presentes (por ejemplo, 'password') assert "password" not in data # Verificación de tipos de campos assert isinstance(data["id"], int) assert isinstance(data["name"], str) assert isinstance(data["email"], str) # Verificación de valores (ejemplo) assert data["id"] > 0 assert "@" in data["email"] # Verificación básica del formato de email -
Comparación con referencia (Golden Master / Snapshot Testing):
- Se guarda una respuesta correcta conocida (referencia).
- La respuesta actual se compara con la referencia.
- Útil para verificar la estabilidad de la estructura, pero menos flexible ante cambios esperados en los datos.
-
Uso de bibliotecas o frameworks especializados:
- RestAssured (Java)
- Postman (Newman): permite escribir pruebas en JavaScript, incluyendo validaciones de esquema y campos.
- Pytest/unittest con bibliotecas para trabajar con JSON/XML.
La elección del método depende de la complejidad de la estructura de la respuesta, los requisitos de precisión en la validación y la pila tecnológica utilizada. La validación de esquema es el estándar de oro para pruebas de API, ya que cubre todos los aspectos de la estructura y los tipos de datos.