Pruebas de Headers en Cypress para Validar Content Type

Clase 5 de 17Curso de Automatización de Pruebas de Backend con Cypress

Resumen

¿Cómo configurar la Base URL en Cypress?

Al iniciar con Cypress, uno de los primeros pasos es configurar la Base URL. Esto es esencial para facilitar las pruebas que realicemos, pues nos permite no repetir la dirección completa cada vez que deseamos probar una URL. La Base URL actúa como el punto de partida para nuestras rutas en las pruebas. En este caso, trabajaremos con un servidor local en localhost:3000. Así, al configurar eso correctamente, garantizamos que todas nuestras pruebas tengan un punto de referencia adecuado.

¿Cómo crear un archivo de prueba en Cypress?

Una vez configurada la Base URL, vamos al directorio de integraciones donde se suelen añadir las pruebas. Aquí, creamos un archivo JavaScript denominado headers.spec.js. Este nombre específico es crucial, pues Cypress reconoce los archivos de prueba que llevan la extensión spec. Luego, dentro del archivo, utilizamos la estructura describe para enmarcar nuestras pruebas bajo un título descriptivo, como "probando headers". Después, utilizamos it para definir una prueba específica, en este caso, validando el header y el content type.

Código para configurar y crear pruebas en Cypress

// En la configuración de Cypress, define la Base URL
// Ejemplo: cypress.json o en cypress.config.js

{
  "baseUrl": "http://localhost:3000"
}

// En el archivo headers.spec.js

describe('Probando headers', () => { 
  it('Debe de validar el header y el content type', () => {
    // Lógica de prueba aquí
  });
});

¿Cómo hacer peticiones HTTP con Cypress?

Cypress ofrece el comando request para realizar peticiones HTTP. Una vez definida la Base URL, solo necesitamos pasar el endpoint específico a este comando. Por ejemplo, para hacer una petición GET al endpoint /employees, usamos request('/employees'). Este método devuelve información detallada de la petición, como el status, los headers y el body de la respuesta.

Ejemplo de petición y uso de propiedades en Cypress

// Dentro de la prueba it()

cy.request('/employees').then((response) => {
  // Asegúrate de que el status sea 200
  expect(response.status).to.eq(200);
  
  // Validar que el Content-Type sea JSON
  expect(response.headers['content-type']).to.include('application/json');
});

¿Qué nos proporciona la consola de Cypress?

Al ejecutar nuestras pruebas, aunque no veamos cambios en la visualización del navegador, Cypress registra toda la actividad en su consola. Aquí podemos inspeccionar detalles de cada petición realizada, como:

  • El comando ejecutado (request)
  • El endpoint y método HTTP utilizado
  • El tiempo de respuesta
  • El código de estado devuelto (200 para éxito)
  • Los headers de la respuesta
  • El cuerpo de la respuesta (body)

Esta información es invaluable para validar y depurar nuestras pruebas.

La importancia de las aserciones en pruebas

Las aserciones son fundamentales en las pruebas automatizadas. En este contexto, confirmamos que el Content-Type del header es application/json. Esto asegura que la respuesta devuelta es un JSON, lo que es crucial al interactuar con APIs que esperan o retornan este formato. Las aserciones permiten determinar si la respuesta no solo es exitosa, sino también si es la esperada en formato y contenido.

Al aprender a usar correctamente Cypress, puedes mejorar significativamente la eficiencia de tus pruebas y garantizar que tus aplicaciones funcionen según lo previsto. ¡Continúa explorando y practicando, siempre hay nuevas herramientas y métodos por descubrir!