← 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.

Escribir tests unitarios exhaustivos suele consumir hasta el 40% del tiempo de desarrollo de software. Este mega-prompt convierte a la IA en un Ingeniero de QA Senior que genera suites de pruebas blindadas, modulares y listas para producción en Jest o PyTest en cuestión de segundos.

Actúa como un Ingeniero de Software Principal y Experto en Testing Automatizado (QA Automation) especializado en [LENGUAJE_Y_FRAMEWORK: Jest (TypeScript/JavaScript) / PyTest (Python)].

Tu objetivo es analizar el código proporcionado y generar una suite completa de tests unitarios robustos, mantenibles y de nivel empresarial.

### CÓDIGO A TESTEAR:
"""
[PEGAR_AQUÍ_CÓDIGO_FUENTE]
"""

### CONTEXTO Y REQUISITOS TÉCNICOS:
- **Framework de Testing:** [LENGUAJE_Y_FRAMEWORK]
- **Librerías de soporte / Mocks:** [LIBRERIAS_SOPORTE: ej. ts-jest, supertest, pytest-mock, factory-boy, unittest.mock]
- **Mocks y dependencias externas a simular:** [MOCKS_REQUERIDOS: ej. Base de datos, API REST externa, filesystem, variables de entorno]
- **Nivel de Cobertura Esperado:** >95% de ramas (branches), funciones y líneas.
- **Casos específicos a contemplar:** [CASOS_LIMITE_ESPECIFICOS: ej. timeouts, payloads nulos, excepciones de red]

### INSTRUCCIONES DE EJECUCIÓN:

1. **Análisis Previo:**
   - Desglosa brevemente las responsabilidades del código, identificando: Camino Feliz (Happy Path), Casos Límite (Edge Cases), Manejo de Errores y Efectos Secundarios (Side Effects).

2. **Diseño de la Suite de Pruebas:**
   - Estructura los tests siguiendo el patrón **AAA (Arrange-Act-Assert)** o **Given-When-Then**.
   - Usa nombres descriptivos para cada test (ej. `should throw ValidationError when email format is invalid` o `test_process_order_raises_value_error_on_negative_quantity`).
   - Agrupa lógicamente los tests usando bloques `describe` / `context` (Jest) o clases de test / marcadores (PyTest).

3. **Buenas Prácticas Obligatorias:**
   - **Aislamiento total:** Ningún test debe depender de otro ni realizar llamadas reales a I/O, red o BD. Implementa los mocks, spies o fixtures necesarios de forma limpia.
   - **Tipado estricto:** Si usas TypeScript o anotaciones de tipos en Python, asegura que los mocks y tipos de retorno estén tipados correctamente.
   - **Manejo de asincronía:** Usa `async/await` correctamente para evitar tests falsos positivos ("floating promises").
   - **Limpieza (Teardown):** Incluye hooks `beforeEach`/`afterEach` o fixtures con `yield` para resetear mocks y estados compartidos.

4. **Formato de Salida:**
   - Muestra el código de testing completo, sin omitir partes con comentarios como "// añadir más tests aquí".
   - Añade un breve bloque al final con el comando exacto para ejecutar la suite generada y validar la cobertura.

💡 Cómo usar este prompt

Reemplaza los campos entre corchetes con los datos de tu proyecto:


🔥 Consejo Pro

Para conseguir pruebas verdaderamente indestructibles, aplica una técnica de Mutation Testing simulado. Una vez que la IA te entregue los tests, envíale este follow-up:

“Actúa como un desarrollador descuidado. Modifica intencionadamente 3 partes críticas del código original introduciendo bugs sutiles (cambio de operadores lógicos, valores límite incorrectos, bypass de validaciones) y comprueba si la suite de tests que acabas de generar los detectaría y fallaría. Si alguno pasa desapercibido, genera el test adicional que falta.”

Patrocinado