Les proves unitàries són una part fonamental del desenvolupament de programari modern. Aquestes proves permeten verificar que les unitats individuals de codi (com ara funcions, mètodes o classes) funcionen correctament. En aquest mòdul, aprendrem com crear i executar proves unitàries en C# utilitzant el framework de proves MSTest.

Objectius del Mòdul

  • Entendre la importància de les proves unitàries.
  • Aprendre a configurar un projecte de proves unitàries en Visual Studio.
  • Escriure proves unitàries bàsiques.
  • Executar i interpretar els resultats de les proves.
  • Conèixer les bones pràctiques per escriure proves unitàries efectives.

  1. Introducció a les Proves Unitàries

Què són les Proves Unitàries?

Les proves unitàries són petites proves automatitzades que verifiquen el comportament d'una unitat de codi. Una unitat pot ser una funció, un mètode o una classe. L'objectiu és assegurar-se que cada unitat funcioni correctament de manera aïllada.

Importància de les Proves Unitàries

  • Detecció Primerenca d'Errors: Les proves unitàries permeten detectar errors en les primeres fases del desenvolupament.
  • Facilitat de Manteniment: Faciliten la refactorització del codi, ja que asseguren que els canvis no introdueixin nous errors.
  • Documentació: Les proves unitàries serveixen com a documentació viva del comportament del codi.

  1. Configuració del Projecte de Proves Unitàries

Creació d'un Projecte de Proves en Visual Studio

  1. Obre Visual Studio i crea una nova solució.
  2. Afegeix un nou projecte a la solució seleccionant "Projecte de Proves Unitàries" (Unit Test Project).
  3. Selecciona MSTest com a framework de proves.

Estructura del Projecte de Proves

Un projecte de proves unitàries típic tindrà una estructura similar a la següent:

Solution
│
├── MyApplication
│   ├── Program.cs
│   └── MyClass.cs
│
└── MyApplication.Tests
    ├── MyClassTests.cs
    └── TestUtilities.cs

  1. Escriure Proves Unitàries Bàsiques

Exemple de Prova Unitària

Suposem que tenim una classe Calculator amb un mètode Add que suma dos nombres.

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

Ara, escriurem una prova unitària per verificar el comportament del mètode Add.

using Microsoft.VisualStudio.TestTools.UnitTesting;

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

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

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

Explicació del Codi

  • [TestClass]: Indica que aquesta classe conté proves unitàries.
  • [TestMethod]: Marca un mètode com a prova unitària.
  • Arrange: Configura les dades necessàries per a la prova.
  • Act: Executa el mètode que es vol provar.
  • Assert: Verifica que el resultat sigui l'esperat.

  1. Executar i Interpretar les Proves

Executar les Proves

  1. Obre el Test Explorer a Visual Studio (Test > Windows > Test Explorer).
  2. Executa totes les proves fent clic a "Run All".

Interpretar els Resultats

  • Verd: La prova ha passat correctament.
  • Vermell: La prova ha fallat. Revisa el missatge d'error per identificar el problema.

  1. Bones Pràctiques per a les Proves Unitàries

Consells

  • Proves Aïllades: Cada prova ha de ser independent de les altres.
  • Noms Descriptius: Utilitza noms de mètodes de prova que descriguin clarament el que es prova.
  • Cobertura de Codi: Assegura't que les proves cobreixin tots els casos possibles, incloent-hi els casos límit.
  • Evita les Dependències Externes: Utilitza mocks o stubs per aïllar la unitat de codi que es prova.

Errors Comuns

  • Proves Dependents: No facis que una prova depengui del resultat d'una altra.
  • Proves Massa Generals: Les proves han de ser específiques i verificar un comportament concret.
  • No Actualitzar les Proves: Quan es canvia el codi, assegura't d'actualitzar les proves corresponents.

Conclusió

Les proves unitàries són una eina poderosa per assegurar la qualitat del codi. En aquest mòdul, hem après a configurar un projecte de proves, escriure proves unitàries bàsiques i seguir bones pràctiques per a la seva creació. Amb aquestes habilitats, estaràs millor preparat per desenvolupar codi robust i mantenible.

Proper Pas: En el següent mòdul, explorarem les millors pràctiques i patrons de disseny per escriure codi net i eficient.

© Copyright 2024. Tots els drets reservats