Resumen

Implementa pruebas unitarias en .NET con xUnit, Entity Framework InMemory y Copilot en Visual Studio para asegurar calidad desde el inicio. Aprenderás a crear el proyecto de pruebas, configurar dependencias, generar casos con IA, ejecutar validaciones y aplicar el patrón triple A (Arrange-Act-Assert) sin fricción.

¿Cómo crear y configurar el proyecto de pruebas con xUnit en .NET?

Inicia creando un proyecto de tipo xUnit y sigue una convención de nombres clara. Esto facilita que las herramientas de integración detecten automáticamente el módulo de pruebas y mejoren el flujo de CI/CD.

  • Crear proyecto con xUnit en Visual Studio.
  • Nombrar el proyecto como CursoApis.test.
  • Seleccionar .Net 10.
  • Eliminar la prueba por defecto.

¿Qué dependencias instalar para aislar la lógica?

Para evitar dependencias externas y garantizar pruebas deterministas, instala los paquetes clave.

  • Librería de mocks para imitar servicios externos (por ejemplo, logger).
  • Entity Framework y InMemory para una base de datos en memoria.
  • Uso de InMemory: permite probar el App DbContext sin un servidor real.

¿Por qué la nomenclatura importa para integración continua?

Seguir el estándar con sufijo .test es útil porque:

  • Muchas herramientas buscan automáticamente proyectos que terminan en test.
  • Facilita la organización por capa y responsabilidad.
  • Mejora la mantenibilidad y la colaboración.

¿Cómo usar Copilot en Visual Studio para generar pruebas unitarias?

Aprovecha Copilot con dos modos para crear las pruebas del servicio sin trabajo repetitivo, manteniendo contexto con el archivo activo.

  • Modos disponibles: Ask (chat con respuestas para copiar) y Agent (aplica cambios en archivos del proyecto).
  • Activar el active document con el archivo de TaskService como referencia.
  • Prompt recomendado en plural para abarcar varios métodos:
Crea las pruebas unitarias para el servicio de Task Service utilizando una base de datos en memoria para App DbContext
  • Importancia del plural: evita que genere una sola prueba a un único método.
  • Compilación inicial: si faltan referencias, instálalas y recompila.
  • Selección de modelo: se menciona uso de GPT Mini y GPT-5 Mini como opciones gratuitas; también Cloud Sonnet destacó por su rendimiento en código.

¿Cómo validar, ejecutar y mantener las pruebas con el patrón triple A?

Visualiza y ejecuta los casos desde Test Explorer: se generaron cuatro pruebas y se ejecutaron correctamente. La estructura y claridad del patrón triple A dan confianza continua al refactorizar.

¿Qué es el patrón triple A y cómo se aplica?

El patrón organiza cada test en tres fases para mantener foco y legibilidad.

  • Arrange: crea la base de datos en memoria con un nombre único. Instancia TaskService.
  • Act: ejecuta el método a probar, por ejemplo, un get all.
  • Assert: valida que el resultado sea el esperado.

¿Cómo detectar regresiones con cambios de lógica?

Un cambio aparentemente inocuo puede romper escenarios existentes.

  • Ejemplo: aplicar un filtro tipo where con “ID < 0” provoca que no se devuelva nada.
  • Efecto observado: una prueba esperaba dos registros y recibió cero.
  • Beneficio: las pruebas alertan de inmediato cuando se daña la lógica previa.

¿Qué herramientas usar para ejecutar pruebas en Visual Studio y la terminal?

Puedes ejecutar desde la interfaz o desde la línea de comandos con el mismo resultado.

  • Ver resultados y detalles en Test Explorer.
  • Ejecutar en terminal en el proyecto de pruebas:
dotnet test
  • Resultado esperado del ejemplo: cuatro pruebas en total; una falló tras el cambio y tres pasaron.

¿Listo para aumentar la cobertura? Comenta qué métodos agregaste, qué prompts te funcionaron mejor con Ask o Agent y cómo configuraste InMemory para tu App DbContext.