<aside>
Contenido
</aside>
<aside>
Las pruebas de integración validan el flujo completo de la API: desde la petición HTTP hasta la base de datos y viceversa. A differencia de las unitarias, aquí se levanta todo el contexto de Spring Boot con infraestructura real.
Testcontainers 2.0: Levanta contenedores Docker reales de PostgreSQL y RabbitMQ exclusivos para el test. Se crean antes de los tests y se destruyen al terminar. No depende del ambiente local.
MockMvc: Simula peticiones HTTP al controller sin necesidad de un servidor real.
@DynamicPropertySource: Inyecta dinámicamente las URLs de los contenedores en la configuración de Spring.
POST /clientes: Crear cliente exitosamente → espera 201 Created.POST /clientes: Identificación duplicada → espera 409 Conflict.POST /clientes: Request sin campos obligatorios → espera 400 Bad Request con errores de validación.GET /clientes: Listar todos → espera 200 con al menos 1 cliente.GET /clientes/{id}: Obtener por ID → espera 200 con datos correctos.GET /clientes/9999: ID inexistente → espera 404 Not Found.PUT /clientes/{id}: Actualizar cliente → espera 200 con nombre cambiado.PATCH /clientes/{id}: Actualizar solo teléfono → espera 200, teléfono cambiado, nombre intacto.DELETE /clientes/{id}: Soft delete → espera 204, después GET confirma estado: false.POST /clientes: Género inválido → espera 400 con mensaje "solo acepta los valores: [MASCULINO, FEMENINO, OTRO]".
</aside>