← Back to course

Testing unit test E2E AI

🧠 Lección: Testing en Proyectos AI-Native (Unit, E2E + AI)

🎯 Objetivo

Entender cómo implementar testing moderno usando:

* 🧪 Unit Tests

* 🔁 E2E Tests

* 🤖 AI para generar, validar y mejorar pruebas

👉 En AI-native development, testing no es opcional… es parte del flujo.

🚀 1. ¿Por qué testing es crítico hoy?

Sin testing:

* ❌ Bugs en producción

* ❌ Código AI poco confiable

* ❌ Difícil escalar

Con testing:

* ✅ Confianza en el código

* ✅ Iteración rápida

* ✅ Menos errores

🧩 2. Tipos de Testing

🧪 1. Unit Testing

Testea una unidad pequeña (función / servicio)

👉 Ejemplo:

* Validar login

* Calcular resultado

* Procesar datos

🔁 2. E2E Testing (End-to-End)

Testea el flujo completo

Usuario → UI → API → DB → respuesta

👉 Ejemplo:

  • Usuario crea cuenta

  • Hace login

  • Ve dashboard

⚙️ 4. Testing en tu stack (React + NestJS)

Backend (NestJS)

  • Jest → Unit tests

  • Supertest → E2E

Frontend (React)

  • Testing Library

  • Playwright / Cypress → E2E

💻 5. Ejemplo Unit Test (NestJS)

describe('TasksService', () => {
  it('should create a task', () => {
    const service = new TasksService();
    const task = service.create('Test');

    expect(task.title).toBe('Test');
    expect(task.completed).toBe(false);
  });
});

🔁 6. Ejemplo E2E (API)

it('/tasks (POST)', async () => {
  return request(app.getHttpServer())
    .post('/tasks')
    .send({ title: 'Task 1' })
    .expect(201);
});

🤖 7. AI + Testing (Game changer)

Aquí es donde entra el poder AI-native:

🔥 AI puede:

  • Generar tests automáticamente

  • Detectar edge cases

  • Sugerir mejoras

  • Validar cobertura

🧠 Prompt ejemplo:

You are a QA engineer.

Generate unit tests for this service.
Cover:
- Edge cases
- Error handling
- Validation

👉 Resultado:

  • Más cobertura

  • Menos esfuerzo

  • Mejor calidad

🔁 8. Workflow AI-Native Testing

Spec → Code (AI) → Tests (AI) → Validate → Iterate

👉 Testing ocurre desde el inicio, no al final

🧠 9. Qué testear (prioridades)

🔑 Crítico:

  • Lógica de negocio

  • Autenticación

  • Validaciones

  • APIs

⚠️ Menos crítico:

  • UI simple

  • Código trivial

⚠️ 10. Errores comunes

  • ❌ No escribir tests

  • ❌ Solo testear happy path

  • ❌ No validar errores

  • ❌ Confiar ciegamente en AI

🧩 11. Buenas prácticas

✅ Haz esto:

  • Escribe tests pequeños

  • Usa mocks

  • Automatiza

  • Integra en CI/CD

❌ Evita esto:

  • Tests gigantes

  • Dependencias externas

  • Tests lentos

🧪 12. Ejercicio práctico

🛠️ Task:

Para tu Task Manager:

  1. Genera con AI:

    • Unit tests para service

    • E2E para API

  2. Mejora los tests:

    • Agrega edge cases

    • Maneja errores

🧠 Reflexión:

  • ¿Qué generó bien la AI?

  • ¿Qué faltó?

  • ¿Qué mejorarías en el prompt?

🧠 13. Mental Model Shift

Antes:

“Primero código, luego test”

Ahora:

“Código + tests desde el inicio (con AI)”

🏁 Conclusión

Un sistema sin tests es un sistema frágil.

En AI-native:
👉 Testing es parte del desarrollo, no un paso final