Tema 12 · Testing

12. Generación de Pruebas Unitarias Exhaustivas y Casos de Prueba

Acelera la creación de suites de pruebas (PHPUnit, Jest) delegando en la IA la detección de casos límite y valores atípicos.

La IA como Antídoto al Sesgo de Confirmación del Programador

Cuando un desarrollador escribe una función, sufre de forma natural de sesgo de confirmación: tiende a probar únicamente el camino feliz (happy path), es decir, los casos en los que todo funciona como él lo imaginó.

La Inteligencia Artificial es el copiloto perfecto para escribir pruebas unitarias (Unit Tests) porque no tiene apego emocional a tu código. Si se lo pides, atacará tu función con casos extremos que tú nunca imaginaste: cadenas vacías, números negativos, ataques XSS, cadenas Unicode de emojis y desbordamientos numéricos.

El Patrón A.A.A. (Arrange, Act, Assert)

Toda prueba generada por la IA debe respetar la estructura estándar de la industria:

  • Arrange (Organizar): Prepara los datos de entrada, dependencias simuladas (Mocks) y el estado inicial.
  • Act (Actuar): Invoca el método o función que se está evaluando.
  • Assert (Afirmar): Comprueba con aserciones estrictas (assertSame, expect()) que el resultado o excepción sea exactamente el esperado.

⚡ Prompt para Generar Pruebas Unitarias en PHPUnit / Jest

Instrucción para crear una suite de pruebas exhaustiva con Data Providers que cubra caminos felices y casos de fallo malicioso.

test-generator-prompt.md
Solo lectura
# Solicitud de Generación de Pruebas Unitarias (Kilopolis)

Analiza la siguiente clase validadora de slugs en PHP:

```php
final class SlugHelper {
    public static function generate(string $title): string {
        $slug = mb_strtolower(trim($title), 'UTF-8');
        $slug = preg_replace('/[^\p{L}\p{N}]+/u', '-', $slug);
        return trim($slug, '-');
    }
}
```

## INSTRUCCIÓN:
Genera la clase de prueba unitaria completa `tests/Unit/SlugHelperTest.php` usando **PHPUnit 10+** respetando estas condiciones:

1. **Usa Data Providers (@dataProvider):** Para probar al menos 8 combinaciones de texto distintas sin repetir código.
2. **Cubre Casos Borde Obligatorios:**
   - Caracteres acentuados en español ("Programación en Español" => "programacion-en-espanol").
   - Títulos con múltiples espacios consecutivos ("Hola    Mundo" => "hola-mundo").
   - Títulos con emojis o caracteres especiales ("Curso PHP 8! 🚀" => "curso-php-8").
   - Cadenas compuestas solo por símbolos ("---!@#$---" => "").
3. **Estructura A.A.A.:** Comenta claramente las fases de preparación, ejecución y aserción.
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿Por qué delegar la creación de pruebas unitarias a una IA es una de las prácticas más seguras y efectivas para un desarrollador?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar IA como Copiloto: Aprendizaje & Desarrollo Web y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.