0%
Dobles de prueba y red

Dobles de prueba y red

Un doble demasiado complaciente convierte su suite de tests en una máquina de producir confianza injustificada

10-15 min

Dobles de prueba y red

Su página de facturación está cubierta por veinte tests en verde. En producción, muestra NaN € desde hace tres días. Abre los tests: simulan el cliente HTTP con vi.mock, y el doble devuelve { montant: 1290 }. El servicio real, en cambio, devuelve { montant: "1290.00", devise: "EUR" } desde una migración del back-end del mes pasado. Sus tests nunca han verificado el contrato real: han verificado que su código funciona con los datos que usted ha inventado para él.

Este es el riesgo central de todo doble, y es estructural: sustituye una dependencia por una versión simplificada y, por tanto, elimina de la superficie de test exactamente la parte que no controla. La pregunta nunca es «¿hay que simular?», sino «¿a qué nivel cortar?», y la respuesta casi siempre es: lo más abajo posible. Interceptar a nivel HTTP deja que se ejecuten su cliente, su serialización, su gestión de errores y el análisis de la respuesta, es decir, todo el código donde realmente se alojan los bugs. Simular el módulo que llama a la API elimina todo eso de golpe.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!