← Volver a la Galería
Patrocinado
Programación

Generador de Tests Unitarios (Jest/PyTest)

Copia y pega este prompt de IA avanzado para Generador de Tests Unitarios (Jest/PyTest). Optimizado para ChatGPT, Claude y Midjourney.

Automatizar la creación de pruebas unitarias reduce drásticamente el tiempo de desarrollo y blinda tu software contra regresiones inesperadas. Con este mega-prompt especializado, transformarás cualquier fragmento de código en una suite de tests exhaustiva, cubriendo casos límite, implementando mocks limpios y maximizando la cobertura sin fricción.

Actúa como un Ingeniero de Software Principal especializado en Calidad (QA Automation) y Arquitectura de Pruebas Unitarias. Tu objetivo es diseñar una suite completa, robusta y mantenible de tests unitarios utilizando [FRAMEWORK_TESTING: Jest | PyTest] para el código fuente provisto.

### CONTEXTO Y ENTRADA:
- Lenguaje y versión: [LENGUAJE_Y_VERSION, ej: TypeScript 5.x / Python 3.11]
- Framework de pruebas: [FRAMEWORK_TESTING, ej: Jest con ts-jest / PyTest con pytest-mock]
- Nivel de cobertura deseado: [NIVEL_COBERTURA, ej: 100% de branches y statements / Mínimo 85%]
- Código a testear:

[CODIGO_FUENTE]


### INSTRUCCIONES DE DISEÑO DE TESTS:
1. **Estructura AAA:** Cada test debe implementar rigurosamente el patrón Arrange-Act-Assert (Preparar, Actuar, Verificar).
2. **Casos Felices (Happy Path):** Cubre los flujos de ejecución estándar con entradas válidas y verifica retornos esperados.
3. **Casos Límite y Extremos (Edge Cases):**
   - Valores nulos, indefinidos, vacíos o tipos inesperados.
   - Desbordamientos, límites numéricos, cadenas con caracteres especiales/Unicode.
   - Manejo de colecciones vacías o con volúmenes masivos de datos.
4. **Manejo de Errores y Excepciones:**
   - Verifica que las excepciones personalizadas o errores estándar se lancen con los mensajes/códigos correctos.
   - Si aplica, usa `toThrow()` en Jest o `pytest.raises()` en PyTest.
5. **Aislamiento y Mocks:**
   - Identifica dependencias externas (bases de datos, llamadas HTTP, APIs de terceros, filesystem, timers).
   - Genera mocks/stubs limpios usando las utilidades nativas (`jest.spyOn`, `jest.fn()` o fixtures de `unittest.mock` / `mocker`).
   - Restaura el estado de los mocks entre pruebas (`beforeEach`, `afterEach`, o fixtures con scope adecuado).
6. **Parametrización:**
   - Agrupa casos de prueba similares usando `test.each` (Jest) o `@pytest.mark.parametrize` (PyTest) para evitar duplicación de código.

### FORMATO DE SALIDA REQUERIDO:
1. **Resumen de Casos Cubiertos:** Una tabla Markdown breve que liste cada test, su tipo (Happy Path, Edge Case, Error) y qué valida.
2. **Código de Pruebas:** Bloque de código listo para producción, con importaciones correctas, tipado estricto (si es TS) y comentarios concisos que expliquen la lógica de los mocks complejos.
3. **Comando de Ejecución:** El comando CLI exacto para ejecutar esta suite de pruebas y generar el reporte de cobertura.

💡 Cómo usar este prompt

Rellena las variables entre corchetes antes de enviarlo al modelo:

🔥 Consejo Pro

Para obtener mocks hiperrealistas cuando tu código interactúa con dependencias externas (como SDKs de AWS, Prisma, TypeORM o clientes HTTP como Axios/Requests), incluye junto a tu código fuente las interfaces o firmas de tipos de esas dependencias. Si además le pides a la IA que aplique la técnica de Mutation Testing Inversion (haciendo que diseñe tests capaces de fallar si alguien cambia un operador <= por <), la suite resultante detectará bugs lógicos que los tests tradicionales suelen ignorar.

Patrocinado