Pruebas de C# para principiantes: por dónde empezar en 2024

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Por qué las pruebas en C# no dan miedo, sino que son beneficiosas?

\n\n

Si apenas estás comenzando tu camino en C# y has oído que «un buen desarrollador siempre escribe pruebas», pero no tienes idea de por dónde empezar con este tema, has llegado al lugar indicado. Probar el código a menudo asusta a los principiantes: parece algo complicado que requiere un conocimiento profundo de la arquitectura y un montón de configuraciones. En realidad, escribir pruebas en C# es una habilidad que se puede aprender en una tarde, y sus beneficios durarán años.

\n\n

Imagina que has ensamblado un mecanismo complejo con miles de piezas. ¿No lo pondrías en marcha a máxima potencia sin verificar cada componente? Lo mismo ocurre con un programa: las pruebas unitarias en C# permiten verificar cada «pieza» de tu código por separado, sin esperar a que todo el sistema colapse en producción. En este artículo, analizaremos las pruebas en C# desde cero: desde la elección del framework hasta escribir tu primera prueba con sentido. ¡Allá vamos!

\n\n

Por dónde empezar con las pruebas en C#: preparación del entorno

\n\n

Antes de escribir código, asegurémonos de que tienes todo lo necesario. Para las pruebas en C# necesitarás:

\n
    \n
  • Visual Studio 2022 (Community edition — gratuita) o JetBrains Rider (si tienes licencia).
  • \n
  • .NET SDK (versión 6, 7 u 8 — cualquier LTS sirve).
  • \n
  • Comprensión básica de POO en C#: clases, métodos, interfaces.
  • \n
\n\n

Cuando el entorno esté listo, crea un nuevo proyecto. Recomiendo separar el código en dos proyectos: uno principal (tu biblioteca o aplicación) y uno de pruebas. En Visual Studio, esto se hace con el comando: File → New → Project → xUnit Test Project (.NET Core) o NUnit Test Project. Pero iremos un poco más allá y analizaremos ambas herramientas populares.

\n\n

Elegir un framework: NUnit vs xUnit

\n\n

En el mundo de C# hay dos «jugadores» principales para escribir pruebas unitarias: NUnit y xUnit. Ambos funcionan muy bien, pero hay matices:

\n\n
    \n
  • NUnit — un clásico proveniente de Java (análogo a JUnit). Tiene atributos como [Test], [SetUp], [TearDown]. Es muy claro para principiantes.
  • \n
  • xUnit — un framework moderno de los creadores de ASP.NET. Usa [Fact] y [Theory]. Se considera más «limpio» y se integra mejor con .NET Core.
  • \n
\n\n

Para principiantes, recomiendo xUnit — es más simple, no requiere atributos adicionales y es más fácil de entender. Pero si en tu equipo usan NUnit, no hay problema, veremos ambas opciones.

\n\n

Tu primera prueba unitaria en C#: escribiendo código

\n\n

Supongamos que tenemos una clase Calculadora simple:

\n\n
public class Calculator\n{\n    public int Add(int a, int b) => a + b;\n    \n    public int Divide(int a, int b)\n    {\n        if (b == 0)\n            throw new DivideByZeroException("¡No se puede dividir por cero!");\n        return a / b;\n    }\n}
\n\n

Ahora escribamos pruebas para esta clase. Crearemos un proyecto de pruebas (xUnit) y añadiremos una referencia al proyecto principal.

\n\n

Ejemplo de prueba con xUnit

\n\n
using Xunit;\n\npublic class CalculatorTests\n{\n    [Fact]\n    public void Add_ShouldReturnSum_WhenTwoNumbers()\n    {\n        // Arrange\n        var calculator = new Calculator();\n        \n        // Act\n        var result = calculator.Add(3, 5);\n        \n        // Assert\n        Assert.Equal(8, result);\n    }\n    \n    [Fact]\n    public void Divide_ShouldThrowException_WhenDivideByZero()\n    {\n        var calculator = new Calculator();\n        \n        Assert.Throws<DivideByZeroException>(() => calculator.Divide(10, 0));\n    }\n}
\n\n

Observa la estructura Arrange-Act-Assert (AAA). Este es el estándar de oro para escribir pruebas: primero prepara los datos, luego ejecuta la acción y finalmente verifica el resultado. Recuerda este patrón: te salvará del caos.

Blogs

Book Recommendations