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.
- 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.
- Configuració del Projecte de Proves Unitàries
Creació d'un Projecte de Proves en Visual Studio
- Obre Visual Studio i crea una nova solució.
- Afegeix un nou projecte a la solució seleccionant "Projecte de Proves Unitàries" (Unit Test Project).
- 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
- 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.
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.
- Executar i Interpretar les Proves
Executar les Proves
- Obre el Test Explorer a Visual Studio (Test > Windows > Test Explorer).
- 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.
- 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.
Curs de Programació en C#
Mòdul 1: Introducció al C#
- Introducció al C#
- Configuració de l'Entorn de Desenvolupament
- Programa Hello World
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control
Mòdul 3: Programació Orientada a Objectes
Mòdul 4: Conceptes Avançats de C#
- Interfícies
- Delegats i Esdeveniments
- Genèrics
- Col·leccions
- LINQ (Consulta Integrada al Llenguatge)
- Programació Asíncrona
Mòdul 5: Treballant amb Dades
Mòdul 6: Temes Avançats
- Reflexió
- Atributs
- Programació Dinàmica
- Gestió de Memòria i Recollida d'Escombraries
- Multifil i Programació Paral·lela
Mòdul 7: Construcció d'Aplicacions
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Estàndards de Codificació i Millors Pràctiques
- Patrons de Disseny
- Proves Unitàries
- Revisió de Codi i Refactorització