Contenido del curso
Planificación y Gestión del Proyecto
Desarrollo, Versionamiento y Pruebas
- 5

Crea tu primera API con .NET en GitHub
06:38 min - 6

Pruebas unitarias con xUnit en .NET
Viendo ahora - 7

Blindaje de rama main y gestión de commits en GitHub
07:06 min - 8

GitHub Actions para validar pruebas en pull requests
08:34 min - 9

Dockerfile para API .NET en Docker local
06:51 min - 10

CI/CD para imágenes Docker en GitHub Actions
05:58 min - 11

Publicar imagen Docker en Hub con GitHub Actions
06:21 min
CI/CD
Observabilidad, Mejora Continua
- 15

OpenTelemetry con Azure Application Insights
08:16 min - 16

Variables de ambiente en GitHub Actions y Azure Container App
09:49 min - 17

Creación de paneles personalizados con Azure Workbooks
09:49 min - 18

Creación de método para obtener contactos con pruebas unitarias
04:01 min - 19

Deploy automático con pull request en Azure
04:29 min - 20

Herramientas DevOps que puedes intercambiar
04:05 min - 21

Scrum y DevOps juntos en GitHub Projects
03:31 min - 22

Qué sigue después de tu primer pipeline
02:55 min
Pruebas unitarias con xUnit en .NET
Resumen
Configurar pruebas unitarias en un proyecto .NET es el primer paso para automatizar la calidad de tu código en un flujo DevOps. Aquí aprenderás cómo crear un proyecto de pruebas unitarias con xUnit, vincularlo a tu API de contactos y ejecutarlo desde la terminal, partiendo del repositorio del curso y avanzando a un ritmo práctico.
¿Por qué configurar pruebas antes de subir a la rama main?
Subir código directamente a main es un error común, incluso entre quienes llevamos años en esto. La solución empieza por preparar tu proyecto para que cada cambio pase por validaciones automáticas, y eso requiere tener pruebas unitarias bien configuradas desde el inicio.
En el repositorio del curso encontrarás una carpeta llamada Docs con archivos Markdown. Dentro de la clase seis hay una secuencia de comandos lista para copiar y pegar en tu terminal, pensada para que avances rápido sin detenerte en conceptos básicos de programación o infraestructura.
¿Qué es una prueba unitaria? Es un fragmento de código que valida automáticamente que un método de tu aplicación devuelve el resultado esperado, aislando esa unidad del resto del sistema.
¿Cómo crear el proyecto de pruebas con xUnit y .NET?
Desde tu terminal, ubícate en la carpeta src del proyecto. El primer comando crea un proyecto de pruebas usando la plantilla xUnit, uno de los frameworks más usados en el ecosistema .NET [2:00].
El flujo es el siguiente:
- Crea el proyecto con
dotnet new xunitnombrándolo ApiContactos.Test. - Verifica que la carpeta exista con
ls. - Agrega una referencia desde ApiContactos.Test hacia el proyecto original ContactosApi usando
dotnet add reference. - Confirma la referencia abriendo el archivo .csproj en Visual Studio.
El archivo .csproj es la definición del proyecto en .NET, y ahí queda registrada la dependencia entre el proyecto de pruebas y el proyecto principal. Esto permite que las pruebas accedan a las clases y métodos de la API.
¿Para qué sirve el archivo sln en .NET?
Un archivo .sln, o archivo de solución, agrupa varios proyectos relacionados bajo un mismo contenedor lógico. Es estándar en .NET y facilita compilar y administrar múltiples proyectos a la vez [3:30].
Los pasos son:
- Eliminar cualquier .sln generado por error fuera de src.
- Crear uno nuevo con
dotnet new slnllamado ApiContactos.sln. - Vincular ambos proyectos al .sln con
dotnet sln add, primero ContactosApi y luego ApiContactos.Test.
Con esto tienes una solución única que orquesta tu API y tus pruebas.
¿Cómo vincular el proyecto de pruebas con la API de contactos?
Después de tener la solución armada, necesitas un paquete de NuGet que conecte xUnit con tu API web. NuGet es el gestor de paquetes oficial de .NET, equivalente a npm en Node.js.
Instala el paquete con dotnet add package siguiendo el comando del repositorio. Una vez agregado, copia el bloque de código de pruebas que aparece en la guía y pégalo dentro del archivo de pruebas de ApiContactos.Test, reemplazando el contenido por defecto [4:50].
Ese bloque hace dos cosas clave:
- Crea una vinculación con el método Weather Forecast, que viene por defecto en proyectos nuevos de API en .NET.
- Define una prueba unitaria sobre ese método para validar que responde correctamente.
¿Qué es Weather Forecast en .NET? Es el endpoint de ejemplo que se genera automáticamente al crear un proyecto de API con la plantilla por defecto, útil para probar configuraciones antes de escribir tu propia lógica.
¿Cómo ejecutar dotnet test y resolver el error de Program inaccesible?
Con todo configurado, ejecuta dotnet test en la terminal. El comando hace dos cosas en orden: compila ambos proyectos y luego corre las pruebas del proyecto de testing contra el proyecto original.
Es muy probable que aparezca un error indicando que Program es inaccesible. Esto ocurre porque, por defecto, la clase Program en .NET es interna y el proyecto de pruebas no puede acceder a ella desde fuera.
La solución es abrir el archivo Program.cs y agregar al final la línea:
csharp public partial class Program { }
Esta declaración convierte a Program en una clase parcial pública, lo que permite que el proyecto de pruebas la vea y pueda ejecutar validaciones sobre ella [6:30].
¿Qué significa que las pruebas pasen exitosamente?
Al volver a ejecutar dotnet test, los resultados muestran que la prueba pasó una vez y que solo existía una prueba en total. Esto confirma que:
- Ambos proyectos compilan sin errores.
- La vinculación entre ApiContactos.Test y ContactosApi funciona.
- El método validado responde como se espera.
Con esta base lista, tu proyecto de API ya tiene pruebas unitarias automatizables, requisito indispensable para integrarlas en un pipeline de CI/CD en la siguiente etapa.
¿Te ha pasado que olvidas hacer pública la clase Program y te pierdes media hora buscando el error? Cuéntame en los comentarios cómo resolviste tu primera configuración de pruebas en .NET.