¿Cómo probarías un código que llama a una API de pagos externa?
Respuesta
- Oculta el proveedor detrás de tu propia interface (
PaymentGateway) e inyéctala. - Unit tests: usa un fake o mock de tu interface; cubre éxito, tarjeta rechazada, timeout y petición duplicada.
- Tests del adapter: simula HTTP con
responses/respx o respuestas grabadas; comprueba el formato de la petición y cómo se mapean los errores. - Unos pocos tests de integración contra el sandbox o modo de prueba del proveedor (a menudo nocturnos).
- Prueba las claves de idempotencia y la verificación de firmas de webhooks.
- Nunca llames a la API real de producción desde los tests.
Practica esta pregunta en Repaso