Construir y refactorizar con los tests primero
Claude Code examina los archivos de test ya presentes en un proyecto para escribir un nuevo test con el mismo estilo antes de la implementación, y confirmar que ese test falla realmente prueba que efectivamente está probando algo que todavía no existe.
Claude examina los archivos de test ya presentes en un repositorio para reproducir su estilo, su framework de test y sus convenciones de aserción, en lugar de imponer una convención ajena al proyecto. El gesto consiste en pedir esos tests antes de escribir la implementación que deben verificar, y luego lanzar el runner de tests para constatar que efectivamente fallan.
Confirmar el rojo antes de pedir el verde
Esta secuencia, conocida en ingeniería de software como rojo, verde, refactor, no depende de ninguna funcionalidad específica de Claude Code, sigue siendo válida con cualquier herramienta. El rojo prueba que el test puede fallar, el verde prueba que la implementación lo satisface, y saltar directamente al verde sin haber visto el rojo deja abierta una pregunta incómoda: la de saber si el test habría pasado incluso sin ninguna implementación.
El siguiente ejemplo fabrica sus propios datos para seguir siendo válido en cualquier lectura. Un test espera que una función calculerRemise aplique un diez por ciento de descuento, incluso antes de que esa función exista.
function testCalculerRemise() {
const resultat = calculerRemise(200);
console.assert(resultat === 180, "attendu 180, obtenu " + resultat);
}
testCalculerRemise();
// ReferenceError: calculerRemise is not defined, el rojo esperado
Una vez constatado ese rojo, la implementación mínima basta para hacerlo pasar a verde.
function calculerRemise(prix) {
return prix * 0.9;
}
testCalculerRemise();
// ninguna salida: la aserción es verdadera, el test está en verde
Refactorizar una preocupación a la vez
El runner de tests permanece activo durante todo el refactor que sigue, y cada modificación se centra en una sola preocupación, un solo nombre renombrado, una sola función extraída, nunca varias a la vez en el mismo turno. Esta disciplina aísla la regresión: si el runner de tests falla después de un cambio, la causa está en ese cambio concreto, no en un conjunto de modificaciones apiladas que habría que desenredar. Pedirle explícitamente a Claude que identifique los casos límite no cubiertos antes de considerar terminada una serie de tests completa el cuadro, en particular sobre las entradas vacías, negativas o fuera de rango que la implementación inicial suele ignorar.
Esta exigencia de prueba ejecutada enlaza con el test de regresión que cierra una corrección de bug: en ambos casos, la confianza viene de una salida leída, no de una lectura del código.
Rojo, verde, refactor
Una desarrolladora le pide a Claude Code que escriba un test para una función de cálculo de descuento antes de escribir esa función. Ejecuta ese test y lee el mensaje de error mostrado en la terminal.
Escribe en una frase lo que esta situación establece, y en una frase lo que no establece.
Lo que esto establece: Este resultado establece que el test se escribió y ejecutó antes de la existencia de la función que debe verificar, y que efectivamente se produjo un mensaje de error en ese momento.
Lo que esto no establece: No establece que la implementación que vendrá después satisfaga ese test, ya que todavía no se ha escrito ninguna función calculerRemise.
Los tres calibrados falsos más frecuentes
- Demasiado amplio Este resultado prueba que todos los tests escritos por Claude Code en este proyecto fallarán sistemáticamente antes de la implementación.
- Demasiado estrecho Este resultado no muestra nada ya que solo se observó un mensaje de error en una única terminal.
- Fuera de tema Este resultado muestra que la terminal usada por la desarrolladora muestra los mensajes de error en color.
- Claude examina los archivos de test ya presentes en el repositorio para reproducir su estilo y sus convenciones de aserción, en lugar de imponer una nueva.
- El rojo prueba que el test puede fallar y el verde prueba que la implementación lo satisface, saltar directamente al verde deja abierta la cuestión de un test que hubiera pasado sin implementar nada.
- Un refactor se centra en una sola preocupación a la vez, con el runner de tests activo de manera continua, para aislar la causa de cada regresión.
- Pedir explícitamente los casos límite no cubiertos, entradas vacías, negativas o fuera de rango, completa una serie de tests que la implementación inicial suele ignorar.
Elige una pequeña función que todavía tengas que escribir hoy, pídele a Claude Code que escriba primero el test a partir de las convenciones de tu proyecto, ejecuta ese test para verificar que efectivamente falla, y luego escribe la implementación mínima que lo hace pasar a verde.
Cada afirmación datable de esta lección remite aquí al texto público que la respalda. Una fuente que no se abre no prueba nada.
- Claude Code, flujos de trabajo habituales, trabajar con los tests consultée le 2026-09-02