En esta sección, aprenderás sobre la importancia de las pruebas y la depuración en el desarrollo de software. Veremos cómo escribir pruebas unitarias efectivas y cómo utilizar herramientas de depuración para identificar y corregir errores en tu código.

  1. Introducción a las Pruebas

1.1 ¿Qué son las Pruebas Unitarias?

Las pruebas unitarias son un tipo de prueba de software que verifica el correcto funcionamiento de una unidad individual de código, generalmente una función o un método.

Conceptos Clave:

  • Unidad de Código: La parte más pequeña del código que puede ser probada de manera aislada.
  • Framework de Pruebas: Herramientas que facilitan la escritura y ejecución de pruebas unitarias. Ejemplos: NUnit, MSTest, xUnit.

1.2 Beneficios de las Pruebas Unitarias

  • Detección Temprana de Errores: Identificar problemas en las primeras etapas del desarrollo.
  • Facilita el Refactorizado: Permite cambiar el código con confianza.
  • Documentación Viva: Las pruebas pueden servir como documentación del comportamiento esperado del código.

  1. Escribiendo Pruebas Unitarias en C#

2.1 Configuración del Entorno de Pruebas

Para escribir pruebas unitarias en C#, puedes usar el framework MSTest, NUnit o xUnit. Aquí usaremos MSTest como ejemplo.

Pasos para Configurar MSTest:

  1. Crear un Proyecto de Pruebas:

    • En Visual Studio, selecciona Archivo > Nuevo > Proyecto.
    • Elige Proyecto de Prueba Unitarias (.NET Core) y haz clic en Siguiente.
    • Nombra tu proyecto y haz clic en Crear.
  2. Agregar Referencias:

    • Asegúrate de que tu proyecto de pruebas tenga una referencia al proyecto que deseas probar.

2.2 Escribiendo tu Primera Prueba Unitaria

A continuación, se muestra un ejemplo de una prueba unitaria simple usando MSTest.

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace MyProject.Tests
{
    [TestClass]
    public class CalculatorTests
    {
        [TestMethod]
        public void Add_TwoNumbers_ReturnsSum()
        {
            // Arrange
            var calculator = new Calculator();
            int a = 5;
            int b = 3;

            // Act
            int result = calculator.Add(a, b);

            // Assert
            Assert.AreEqual(8, result);
        }
    }
}

Explicación del Código:

  • [TestClass]: Indica que esta clase contiene métodos de prueba.
  • [TestMethod]: Marca un método como una prueba unitaria.
  • Arrange: Configura las condiciones iniciales para la prueba.
  • Act: Ejecuta el código que se está probando.
  • Assert: Verifica que el resultado sea el esperado.

  1. Depuración en C#

3.1 ¿Qué es la Depuración?

La depuración es el proceso de identificar y corregir errores en el código. Utiliza herramientas de depuración para inspeccionar el estado de tu aplicación en tiempo de ejecución.

3.2 Herramientas de Depuración en Visual Studio

Visual Studio ofrece varias herramientas para la depuración, incluyendo:

  • Puntos de Interrupción (Breakpoints): Pausan la ejecución del programa en una línea específica de código.
  • Ventana de Variables Locales: Muestra los valores de las variables en el contexto actual.
  • Ventana de Inspección (Watch): Permite monitorear expresiones específicas.

3.3 Uso de Puntos de Interrupción

Para establecer un punto de interrupción:

  1. Haz clic en el margen izquierdo de la línea de código donde deseas pausar la ejecución.
  2. Ejecuta tu aplicación en modo de depuración (F5).

3.4 Inspección de Variables

Durante la depuración, puedes inspeccionar el valor de las variables:

  • Ventana de Variables Locales: Muestra todas las variables locales en el contexto actual.
  • Ventana de Inspección: Permite agregar expresiones específicas para monitorear.

3.5 Ejemplo Práctico de Depuración

Supongamos que tienes el siguiente método en tu clase Calculator:

public int Divide(int a, int b)
{
    return a / b;
}

Para depurar este método:

  1. Establece un punto de interrupción en la línea return a / b;.
  2. Llama al método Divide desde tu código de prueba o aplicación.
  3. Ejecuta en modo de depuración (F5).
  4. Inspecciona los valores de a y b en la ventana de variables locales.

  1. Ejercicios Prácticos

Ejercicio 1: Escribir una Prueba Unitaria

Escribe una prueba unitaria para el método Subtract de la clase Calculator que reste dos números.

Solución:

[TestMethod]
public void Subtract_TwoNumbers_ReturnsDifference()
{
    // Arrange
    var calculator = new Calculator();
    int a = 10;
    int b = 4;

    // Act
    int result = calculator.Subtract(a, b);

    // Assert
    Assert.AreEqual(6, result);
}

Ejercicio 2: Depurar un Error

Supongamos que el método Multiply de la clase Calculator está devolviendo resultados incorrectos. Usa la depuración para identificar y corregir el error.

Solución:

  1. Establece un punto de interrupción en el método Multiply.
  2. Ejecuta en modo de depuración y llama al método Multiply.
  3. Inspecciona los valores de las variables y corrige el error en el código.

  1. Conclusión

En esta sección, has aprendido sobre la importancia de las pruebas unitarias y la depuración en el desarrollo de software. Has visto cómo escribir pruebas unitarias usando MSTest y cómo utilizar herramientas de depuración en Visual Studio para identificar y corregir errores en tu código. Estas habilidades son esenciales para garantizar la calidad y la fiabilidad de tus aplicaciones.

En el siguiente tema, abordaremos el despliegue de aplicaciones, donde aprenderás cómo preparar y publicar tu aplicación para que esté disponible para los usuarios finales.

© Copyright 2024. Todos los derechos reservados