Contenido del curso
Estructura de una Web API
- 7

Configurar CORS en APIs de .NET
07:08 min - 8

Rutas en APIs .NET con parámetros
12:50 min - 9

Swagger y Scalar para documentar APIs en .NET
14:25 min - 10

Cómo crear middlewares en ASP.NET Core
10:30 min - 11

Inyección de dependencias y logging en .NET
09:18 min - 12

Autenticación básica en APIs con middleware .NET
08:17 min
Arquitectura y Middlewares
- 13

Configurar Entity Framework Core en .NET
07:30 min - 14

Modelos y Fluent API en Entity Framework
10:00 min - 15

Servicios en .NET con Entity Framework
13:51 min - 16

Cómo crear controladores REST en .NET
14:46 min - 17

Conectar .NET con SQL Server usando Entity Framework
09:51 min - 18

Conectar .NET con PostgreSQL usando Entity Framework
06:57 min - 19

Capas de Clean Architecture en .NET
09:07 min - 20

Unit tests en .NET con Copilot y xUnit
Viendo ahora - 21

Qué aprender después de APIs con .NET
02:16 min
Unit tests en .NET con Copilot y xUnit
Resumen
Crear unit tests en .NET ya no es opcional ni una tarea tediosa: con Copilot y xUnit puedes generar pruebas automatizadas que validan tu código en minutos. Aquí aprenderás a configurar un proyecto de pruebas, mockear dependencias y usar una base de datos en memoria para asegurar la calidad de tu API.
¿Por qué hacer unit tests con inteligencia artificial?
Los unit tests son la primera línea de defensa de tu código. Verifican que cada pieza funcione de forma aislada y te avisan cuando un cambio rompe algo que antes funcionaba.
Muchos equipos los saltan porque toman tiempo. Y aquí viene lo interesante: con asistentes como Copilot, esa excusa desaparece. Puedes generar pruebas completas en segundos, ejecutarlas y detectar regresiones antes de que lleguen a producción.
¿Qué es un unit test? Es una prueba automatizada que valida una unidad mínima de código, normalmente un método, en aislamiento de sus dependencias externas.
¿Cómo configurar el proyecto de pruebas con xUnit?
El primer paso es crear un proyecto separado para tus pruebas. En Visual Studio buscas la plantilla de xUnit, una de las librerías más usadas para testing en .NET.
Para nombrarlo, sigue una convención muy aceptada: agrega el sufijo test al final. En este caso lo llamamos curso-apis.test. Muchas herramientas de integración continua detectan automáticamente los proyectos de pruebas buscando esa palabra clave, así que respetar el estándar te ahorra dolores de cabeza [01:05].
Una vez creado el proyecto con .NET 10, toca instalar las dependencias clave desde NuGet:
- Moq, la librería que permite crear imitaciones de servicios externos como un logger, evitando dependencias reales durante la prueba.
- Entity Framework Core, necesario para trabajar con el
DbContextde tu aplicación. - EF Core InMemory, que levanta una base de datos en memoria para correr tus pruebas sin tocar una base real.
Después de instalarlas, elimina el archivo de prueba que viene por defecto. No lo necesitas.
¿Cómo generar unit tests con Copilot paso a paso?
Abre el archivo que vas a probar, en este caso TaskService, y deja Copilot listo en modo lateral. Tienes dos formas de usarlo: el modo Ask, que funciona como un chat donde copias y pegas snippets, y el modo Agent, que toma control del editor y crea o modifica archivos directamente.
Deja activa la opción Active Document para que Copilot use tu archivo actual como referencia. Luego escribe un prompt claro:
Create unit tests for the Task Service using an in-memory database for AppDbContext.
Fíjate en el detalle: usar "unit tests" en plural es crítico. Si escribes "unit test" en singular, Copilot probablemente generará una sola prueba para un método específico en lugar de cubrir todo el servicio [03:55].
¿Qué modelo de Copilot conviene usar para generar tests? GPT Mini funciona bien gratis para casos básicos. Para proyectos complejos, Claude Sonnet entrega mejores resultados en contextos de código y programación.
Al ejecutar el prompt, Copilot crea el archivo de pruebas, intenta compilar y resuelve referencias faltantes. En este ejemplo generó cuatro tests automáticamente.
¿Qué es el patrón AAA en testing?
Las pruebas creadas siguen el patrón AAA, que estructura cada test en tres pasos claros:
- Arrange: configuras el escenario. Aquí se crea un nombre único para la base de datos, se instancia el
DbContexten memoria y se inicializa elTaskService. - Act: ejecutas el método que quieres probar.
- Assert: verificas que el resultado sea el esperado.
Este patrón hace que cualquier desarrollador entienda la prueba con solo leerla.
¿Cómo correr los tests y detectar errores en el código?
Abre la vista Test Explorer en Visual Studio para ver todos los tests del proyecto. Con un clic los ejecutas todos y obtienes un reporte visual de cuáles pasan y cuáles fallan.
También puedes correrlos desde la terminal con el comando:
bash dotnet test
El resultado debe coincidir con el de Visual Studio: número total de pruebas, cuántas pasaron y cuántas fallaron.
¿Cómo detectan los tests un cambio que rompe la lógica?
Imagina que entras al método GetAll del TaskService y agregas un filtro sin sentido, como un where que solo retorna registros con ID menor a cero. Es el tipo de cambio que un desarrollador puede introducir cuando trabaja con código complejo que no conoce a fondo.
Al correr los tests de nuevo, uno falla de inmediato con un mensaje claro: esperaba dos registros y recibió ninguno. Esa es la magia de tener cobertura de pruebas: cualquier modificación que rompa el comportamiento esperado se detecta antes de llegar a producción [07:30].
¿Para qué sirve la base de datos InMemory de Entity Framework? Permite ejecutar pruebas con un contexto de datos real sin necesidad de una base física, haciendo los tests rápidos, aislados y reproducibles.
Reto para completar la cobertura de tu API
Ahora te toca a ti. Usa Copilot para generar los tests restantes de tu proyecto .NET y alcanzar cobertura completa. Apunta a cubrir cada servicio, cada endpoint y cada caso borde que se te ocurra.
Cuéntame en los comentarios qué modelo de IA te dio mejores resultados y cuántos tests lograste generar en tu proyecto.