Saltar al contenido principal

Generador de tests unitarios

Genera casos de prueba unitarios para una función, incluyendo casos límite habitualmente olvidados como valores nulos, vacíos o extremos que el camino feliz suele pasar por alto.

Prompt
Actúa como ingeniero de software especializado en testing y calidad de software. Genera tests unitarios en [FRAMEWORK DE TESTING, ej. Jest, Pytest, JUnit] para la siguiente función. Incluye: casos normales (camino feliz), casos límite (valores vacíos, nulos, cero, negativos, extremos), al menos un caso de error esperado con su excepción correspondiente, y un comentario breve explicando qué valida cada test. Código:

[PEGA AQUÍ LA FUNCIÓN]

Caso de uso

Desarrollo de software

La mayoría de desarrolladores escriben tests para el camino feliz y olvidan los casos límite. Pedir explícitamente valores vacíos, nulos y extremos en el propio prompt fuerza al modelo a cubrir justo esos huecos. Revisa siempre los tests generados: a veces asumen un comportamiento que la función no garantiza realmente.

Por qué funciona esta estructura

La técnica aquí es nombrar explícitamente las categorías de casos límite que suelen olvidarse: vacío, nulo, cero, negativo, extremo. Sin esa lista explícita, tanto humanos como modelos de IA tienden a generar solo tests del camino feliz, que son los más fáciles de imaginar pero los que menos protegen contra bugs reales en producción. Pedir también un comentario explicando qué valida cada test hace que la suite de tests sea legible y mantenible después, no solo funcional.

Antes vs. después

Antes: pedir escribe tests para esta función de cálculo de descuento suele devolver 2-3 tests que verifican un descuento normal aplicado correctamente, sin considerar qué pasa con un descuento del 0%, un precio negativo por error de entrada, o un descuento mayor al 100%.

Después: con la estructura del prompt, la suite de tests incluye explícitamente esos casos límite, revelando por ejemplo que la función actual no lanza ningún error cuando el descuento supera el 100%, lo que podría generar un precio final negativo en producción, un bug real que el camino feliz nunca hubiera detectado.

Variaciones útiles

  • Para funciones asíncronas o con llamadas a APIs externas: pide explícitamente que incluya mocks o stubs para simular respuestas exitosas y fallidas de la API.
  • Para código con alta complejidad ciclomática: pide primero un listado de todas las rutas de código posibles antes de generar los tests, para asegurar cobertura de cada rama condicional.
  • Para equipos con estándares de testing propios: pega un test de ejemplo ya existente en el proyecto para que el modelo replique el mismo estilo y convenciones de nomenclatura.

Qué IA usar

ChatGPT con capacidad de ejecución de código tiene la ventaja de poder verificar que los tests generados realmente compilan y pasan antes de entregártelos. Claude es una alternativa excelente por su capacidad de razonamiento sobre casos límite no obvios, especialmente en funciones con lógica de negocio compleja.

Conclusión

Los tests generados por IA son un punto de partida sólido, pero la cobertura de casos de negocio específicos sigue requiriendo criterio del desarrollador que conoce el contexto completo. Ejecuta siempre los tests generados antes de confiar en ellos: un test que compila no es necesariamente un test correcto.

Preguntas frecuentes

Explora más prompts en Programación y código o revisa nuestras guías de prompt engineering.

Prompts relacionados

Usamos cookies propias y de terceros para analizar el tráfico y mostrar publicidad relevante. Puedes leer más en nuestra política de privacidad.