Validación de Errores en APIs con Cypress
Clase 8 de 17 • Curso de Automatización de Pruebas de Backend con Cypress
Resumen
¿Cómo validar correctamente el status code y mensajes de error?
Validar los códigos de estado y los mensajes de error en APIs es esencial para asegurarnos de que nuestra aplicación maneja correctamente los fallos y muestra información precisa al usuario. Este proceso no solo nos ayuda a identificar conflictos en la API, sino que también mejora la experiencia del usuario al proporcionar mensajes claros sobre lo que está sucediendo. Hoy exploraremos cómo realizar estas validaciones usando Cypress, un potente framework de pruebas para aplicaciones web.
¿Qué es PokeAPI y cómo la utilizamos?
PokeAPI es una API extensa y muy conocida que proporciona datos sobre Pokémon. A menudo se usa en pruebas y aprendizaje debido a su accesibilidad. Utilizaremos PokeAPI para demostrar cómo manejar las situaciones en las cuales se realiza una solicitud con un parámetro que no existe.
Pasos para validar con Cypress:
- Configurar el entorno: Comienza creando un archivo de prueba en Cypress, por ejemplo,
error.spec.js
. - Escribir la prueba: Dentro del archivo, usa la estructura
describe
para definir el conjunto de pruebas yit
para la prueba individual. - Realizar la solicitud: Usa
cy.request
para hacer una solicitud a una URL que sabemos que no existe. - Validar el código de estado: Asegúrate de que el código de estado de la respuesta sea 404.
- Verificar el mensaje de error: Confirma que el cuerpo de la respuesta contenga el mensaje esperado, como "Not Found".
describe('Probando Errores', () => {
it('debe validar el status code fallido y el mensaje de error', () => {
cy.request({
url: 'https://pokeapi.co/api/v2/pokemon/ID_INCORRECTO',
failOnStatusCode: false
}).then((response) => {
expect(response.status).to.equal(404);
expect(response.body).to.have.property('message', 'Not Found');
});
});
});
¿Cómo podemos trabajar con la API de Rick and Morty?
La API de Rick and Morty es otra herramienta educativa rica en datos sobre los personajes y episodios del popular show de televisión. Aquí también podemos realizar validaciones similares.
Proceso de validación con Rick and Morty:
- Realizar la solicitud inofensiva: De nuevo, utiliza
cy.request
para una URL incorrecta. - Verificar propiedades en la respuesta: Asegúrate de que la respuesta contenga una propiedad
error
adecuada al caso.
cy.request({
url: 'https://rickandmortyapi.com/api/unknown_endpoint',
failOnStatusCode: false
}).then((response) => {
expect(response.status).to.equal(404);
expect(response.body).to.have.property('error', 'Location not found');
});
¿Por qué es crucial validar tanto el status code como el mensaje?
La validación dual, tanto de los códigos de estado como de los mensajes, nos asegura identificar correctamente el problema. Esto es clave porque:
- Realismo en pruebas: Algunas APIs solo devuelven un código de error genérico, mientras que otras pueden proporcionar detallados mensajes.
- Coincidencia de condiciones: Garantizamos que nuestras pruebas identifiquen el error y la razón exacta, evitando posibles falsas alarmas.
- Mejor manejo de errores: Nos ayuda a implementar las políticas de manejo de errores más efectivas y a comunicar mejor con los usuarios finales.
Al dominar estas técnicas, puedes enfrentarte a APIs más complejas y asegurar la calidad de tus aplicaciones web. Así que continúa explorando y probando con diferentes APIs para mejorar tus habilidades de validación y manejo de errores. Cada prueba es una oportunidad para aprender algo nuevo y optimizar tus conocimientos. ¡Sigue adelante y experimentar con lo que has aprendido hoy!