Módulo 2: Unit Tests con Claude Code
Módulo 2: Unit Tests con Claude Code
Módulo 2: Unit Tests con Claude Code
Descripción de la cápsula
En el Módulo 1 aprendiste la filosofía: spec-first, tests como especificación, la inversión de control. Escribiste tests y Claude Code implementó. Ahora vas a invertir parcialmente el flujo: darás código existente a Claude Code y le pedirás que genere unit tests. Pero no cualquier test — tests de calidad profesional.
Aquí está el problema que resuelve este módulo: Claude Code puede generar 50 tests en 30 segundos. Si no sabes evaluar la calidad de esos tests, tienes una falsa sensación de seguridad. 40 de esos 50 tests podrían ser triviales — verifican lo obvio pero ignoran edge cases, boundary conditions, y error handling. Este módulo te enseña a distinguir tests útiles de tests decorativos, y a usar prompts que producen tests de calidad.
El valor dual de este módulo: dominarás tanto la generación de tests con Claude Code (prompt engineering para testing) como la evaluación de tests generados (qué hace un test bueno vs trivial). Ambas habilidades son esenciales para el TDD workflow completo del Módulo 4.
Contexto del Módulo
¿Dónde estamos?
Este es el Módulo 2 de la guía — segundo de Phase 1 (Fundamentos TDD con AI).
Lo que ya sabes (Módulo 1):
- ✅ Por qué TDD importa más con AI que sin AI
- ✅ Spec-first methodology: tests como especificación
- ✅ La inversión de control: tú defines specs, Claude Code implementa
- ✅ Anatomía de un buen test-spec: determinista, independiente, enfocado
- ✅ Tu primer ciclo spec→implement→validate
Lo que falta: Saber generar y evaluar unit tests de calidad profesional con Claude Code. Los tests que escribiste en Módulo 1 eran simples y manuales — ahora escalarás con ayuda de la AI.
¿Hacia dónde vamos?
Módulo 1: ✅ Filosofía spec-first (completado)
Módulo 2: ← ESTÁS AQUÍ — Unit tests con Claude Code
Módulo 3: → Integration y E2E tests (expande a más niveles)
Después de este módulo, tendrás la base técnica sólida para unit testing. El Módulo 3 expande a integration y E2E — los otros niveles de la test pyramid.
Objetivo Profesional
Dominar la generación y evaluación de unit tests profesionales usando Claude Code como co-piloto de testing.
Al final de este módulo podrás:
- ✅ Generar unit tests de calidad con Claude Code usando prompts específicos
- ✅ Dominar pytest patterns: arrange-act-assert, parametrize, fixtures básicas
- ✅ Aplicar naming conventions que documentan comportamiento
- ✅ Diferenciar tests triviales de tests útiles — evaluar calidad, no solo cantidad
- ✅ Organizar tests en archivos y directorios siguiendo convenciones profesionales
- ✅ Validar críticamente tests generados por AI antes de confiar en ellos
Progresión del Módulo
Mapa del Módulo
| Cápsula | Tema | Qué aprenderás |
|---|---|---|
| 02 | Generar unit tests con Claude Code | Prompt engineering para tests: cómo pedir tests que cubran happy path, edge cases, y errores |
| 03 | Pytest patterns — Arrange-Act-Assert | El patrón AAA en profundidad, fixtures básicas, conftest.py |
| 04 | Parametrize — múltiples escenarios | @pytest.mark.parametrize para testear N escenarios con un solo test |
| 05 | Validar tests generados por AI | Cómo evaluar si los tests de Claude Code son útiles o triviales — el skill más crítico |
| 06 | Proyecto: Unit test suite generada | Generar suite completa de tests para un módulo de utilidades con Claude Code |
Flujo de aprendizaje
Primero aprenderás a generar tests con Claude Code (cápsula 02) — qué prompts producen tests de calidad y cuáles producen tests genéricos. Es prompt engineering aplicado a testing.
Luego dominarás los patterns de pytest (cápsulas 03-04) — no como un curso de pytest, sino como las herramientas que necesitas para entender y mejorar lo que Claude Code genera. Arrange-act-assert te da estructura. Parametrize te da eficiencia.
Después aprenderás a validar los tests generados (cápsula 05) — el skill más importante del módulo. 50 tests que pasan no significan nada si no testean comportamiento real. Aprenderás a identificar tests triviales, tests que testean implementación en vez de comportamiento, y tests que dan falsa confianza.
Finalmente, en el proyecto (cápsula 06) integrarás todo: recibes un módulo de código Python y usas Claude Code para generar una suite completa de unit tests, evaluando y refinando la calidad hasta tener una suite profesional.
Conexión con Proyecto
Proyecto de este módulo: Unit test suite generada
Recibirás un módulo de utilidades Python (data_utils.py) con funciones de validación, formateo, y transformación de datos. Tu trabajo es usar Claude Code para generar una suite completa de unit tests, evaluando la calidad y refinando hasta tener coverage de comportamiento profesional.
El foco no es la complejidad del código bajo test — es la calidad de los tests generados. Un test suite mediocre tiene 30 tests que verifican lo obvio. Un test suite profesional tiene 30 tests que cubren happy path, edge cases, boundary conditions, error handling, y documentan el comportamiento con nombres claros.
Conexión con proyecto final (Módulo 8)
En el proyecto final construirás una aplicación completa con TDD. Cada feature tendrá unit tests. Si los unit tests que generas son débiles (triviales, sin edge cases), la test suite del proyecto final será frágil. Este módulo construye el skill de generar tests de calidad que escala a cualquier proyecto.
Límites: Qué NO Se Hará en Este Módulo
- ❌ Integration tests — Se cubre en Módulo 3. Aquí solo unit tests (funciones aisladas)
- ❌ Mocking avanzado — Se cubre en Módulo 6. Aquí solo tests de funciones puras
- ❌ Coverage metrics — Se cubre en Módulo 5. Aquí evaluamos calidad manualmente, no con herramientas
- ❌ pytest avanzado — No fixtures con scope, no plugins, no markers custom. Solo lo necesario
- ❌ Curso completo de pytest — Este NO es un tutorial de pytest. Es "cómo usar Claude Code para generar tests con pytest"
Evidencia de Éxito
Al terminar este módulo, sabrás que tuviste éxito si:
- ✅ Puedes dar código a Claude Code y obtener tests de calidad profesional (no genéricos)
- ✅ Puedes identificar en 30 segundos si un test generado por AI es útil o trivial
- ✅ Puedes usar parametrize para reducir 10 tests repetitivos a 1 test con 10 casos
- ✅ Tus tests tienen nombres que documentan el comportamiento del sistema
- ✅ Completaste el proyecto: suite de unit tests generada y evaluada
Resumen
- ✅ Este módulo enseña a generar y evaluar unit tests con Claude Code
- ✅ El prompt determina la calidad: "escribe tests" ≠ "escribe tests que cubran edge cases, errores, y boundary conditions"
- ✅ Pytest patterns (AAA, parametrize) son herramientas para entender y mejorar lo que Claude Code genera
- ✅ Validar tests generados por AI es el skill más crítico — cantidad ≠ calidad
- ✅ El proyecto produce una suite de tests profesional para un módulo de utilidades
Próxima cápsula: Generar unit tests con Claude Code — prompt engineering para testing.
Recursos Adicionales
- pytest Documentation - Referencia completa de pytest
- pytest: Parametrize - Documentación oficial de parametrize
- Effective Python Testing with pytest - Tutorial completo de Real Python
- Anthropic: Claude Code Best Practices - Mejores prácticas oficiales
- Python Testing with pytest (Book) - Libro de referencia de pytest
Módulo 2 — Testing with Claude Code Guide Tests de calidad: el prompt determina el resultado