En muchas aplicaciones, una funcionalidad no vive en un único módulo. Puede estar distribuida entre varios servicios internos que colaboran para completar una operación.
Un servicio de ventas puede consultar productos, stock, usuarios, pagos y notificaciones. Aunque todos pertenezcan a la misma organización, cada servicio puede tener su propio contrato, datos, reglas y forma de responder ante errores.
Las pruebas de integración entre servicios internos verifican que esa colaboración funcione correctamente y que los servicios se entiendan entre sí.
Un servicio interno es un componente que ofrece una capacidad a otras partes del sistema dentro de la misma aplicación, plataforma u organización.
Puede ser:
La diferencia con un servicio externo es que el equipo suele tener mayor influencia sobre su contrato, su disponibilidad y su evolución.
Al probar la integración entre servicios internos, nos interesa verificar:
La comunicación síncrona ocurre cuando un servicio llama a otro y espera una respuesta inmediata para continuar.
Ejemplo: el servicio de ventas consulta al servicio de stock antes de confirmar una compra.
Aspectos a probar:
La comunicación asíncrona ocurre cuando un servicio publica un mensaje o evento para que otro lo procese después. El productor no espera necesariamente una respuesta inmediata.
Ejemplo: el servicio de órdenes publica un evento de orden confirmada y el servicio de notificaciones lo consume para enviar un mensaje.
Aspectos a probar:
Cada servicio expone un contrato para sus consumidores. Ese contrato puede incluir rutas, métodos, eventos, campos, códigos de error, estados y reglas de uso.
Al probar integración entre servicios, conviene verificar:
Un pequeño cambio de contrato puede romper varios consumidores internos si no se detecta a tiempo.
Los servicios internos pueden compartir conceptos de negocio, aunque no compartan una misma base de datos. Por ejemplo, varios servicios pueden hablar de usuario, pedido, producto o cuenta.
Problemas frecuentes:
Las pruebas de integración deben usar datos que revelen estas diferencias.
Un servicio interno puede no estar disponible por fallas, despliegues, errores de red o configuración. La integración debe manejar estas situaciones de forma controlada.
Conviene probar qué ocurre cuando:
El objetivo no siempre es que la operación continúe. A veces el comportamiento correcto es rechazarla, dejarla pendiente o registrar el problema.
Los servicios evolucionan. Un servicio puede agregar campos, cambiar reglas o exponer una nueva versión de su contrato. Las pruebas de integración ayudan a detectar incompatibilidades.
Riesgos de versionado:
Las integraciones internas deben considerar cómo se despliegan cambios y qué consumidores dependen de cada contrato.
Aunque los servicios sean internos, muchas veces necesitan autenticarse o demostrar permisos para invocarse entre sí.
Las pruebas pueden verificar:
Un error de permisos puede bloquear integraciones aunque los datos y contratos sean correctos.
Cuando varios servicios colaboran, diagnosticar una falla puede ser más difícil. Por eso la observabilidad es importante.
Conviene contar con:
Una prueba fallida debe permitir saber qué servicio recibió qué datos y dónde se rompió la colaboración.
Al probar integración entre servicios internos, podemos usar servicios reales en un ambiente de prueba o simular algunos de ellos.
| Enfoque | Ventaja | Riesgo |
|---|---|---|
| Servicios reales | Mayor confianza sobre la colaboración real. | Más preparación, dependencia de disponibilidad y diagnóstico más complejo. |
| Servicio simulado | Mayor control sobre respuestas, errores y tiempos. | Puede quedar desactualizado respecto del contrato real. |
| Combinación | Permite enfocar la prueba en una integración concreta. | Requiere documentar qué se está verificando realmente. |
Supongamos que el servicio de ventas necesita consultar al servicio de stock antes de confirmar una orden.
Una prueba de integración puede verificar:
Este escenario prueba una regla compartida entre dos servicios internos.
Otro caso común es la integración entre un servicio de órdenes y un servicio de notificaciones.
La prueba puede verificar que:
Este ejemplo muestra una integración asíncrona donde el resultado puede aparecer después de un breve tiempo.
Al probar integración entre servicios internos, suelen aparecer errores como:
Antes de considerar cubierta una integración entre servicios internos, conviene revisar:
La integración entre servicios internos permite comprobar que distintas capacidades del sistema colaboran correctamente. Aunque los servicios pertenezcan al mismo equipo u organización, sus contratos, datos y estados deben verificarse.
Estas pruebas ayudan a detectar incompatibilidades, errores de configuración, problemas de versionado y fallas de coordinación antes de que afecten flujos más amplios.
En el próximo tema veremos la integración con APIs y sistemas externos.