Cómo escribo pruebas primero con GitHub Copilot (sin mentirme a mí mismo)
El desarrollo basado en pruebas falla porque escribir pruebas es más lento que escribir código. Copilot cambia las matemáticas y este es el flujo de trabajo donde realmente funciona.
Todos los desarrolladores creen en las pruebas de la misma manera que todos creen en el uso del hilo dental, y el desarrollo basado en pruebas falla por la misma razón: cuando estás en flujo, escribir pruebas se siente como detenerte para hacer papeleo. Copilot cambió las matemáticas para mí, no haciendo que los exámenes fueran agradables sino haciéndolos lo suficientemente rápidos como para que desapareciera la objeción del papeleo. Este es el flujo de trabajo donde realmente se sostiene.
El truco consiste en escribir la prueba como una especificación y dejar que Copilot haga el texto estándar. Antes de tocar la implementación, escribo una prueba fallida con el escenario en el nombre de la prueba y un comentario que describe el comportamiento esperado en lenguaje sencillo. Copilot completa las afirmaciones, las burlas y la configuración con una competencia sorprendente, porque los archivos de prueba son exactamente el tipo de código modelado en el que sobresale. Mi trabajo se reduce a revisar si la prueba prueba lo correcto, lo cual es una decisión de criterio, no escribir.
Agrupe los escenarios, una función a la vez. Enumero los casos antes de comenzar, el camino feliz, la entrada vacía, el límite, el error, luego hago que Copilot los genere de una sola vez y revisen el conjunto juntos. La revisión de cinco pruebas como un conjunto detecta lo que se pierde al revisarlas una por una: el caso que falta, generalmente el caso extraño que ha afectado su código base antes. Mi mensaje previo al vuelo ahora incluye una línea de comentarios que enumera incidentes de producción pasados en este módulo, porque el modelo no puede conocer ese contexto a menos que usted se lo indique.
La parte honesta de probar primero con IA es saber a dónde conduce a error. Copilot estará encantado de escribir una prueba que refleje sus suposiciones erróneas, y una suite ecológica basada en malentendidos compartidos es peor que ninguna suite, porque defiende el error. El antídoto es barato y no negociable: antes de implementarlo, ejecute la prueba y observe cómo falla por el motivo correcto, luego interrumpa deliberadamente el resultado esperado en la afirmación y confirme que la prueba lo detecte. Treinta segundos por prueba que mantienen la suite honesta.
Lo que esto me consiguió en la práctica: cobertura de los caminos aburridos, validación de entradas y manejo de errores, que nunca solía escribir, porque el costo se redujo a casi cero. Lo que no me compró: una excusa para dejar de pensar en lo que debería hacer el código, que es donde se suponía que la prueba primero siempre ayudaría de todos modos. El ritmo del refactor rojo-verde sobrevive intacto; Copilot acaba de eliminar la parte en la que escribir la prueba roja parecía un impuesto.
