Introducció

JUnit és un marc de treball (framework) de proves unitàries per a la plataforma Java. És àmpliament utilitzat per desenvolupar i executar tests automatitzats, ajudant els desenvolupadors a assegurar-se que el seu codi funciona correctament. JUnit facilita la creació de tests repetibles i proporciona una estructura clara per organitzar i executar aquests tests.

Objectius d'aquest tema

  • Entendre què és JUnit i per què és important.
  • Conèixer els beneficis de les proves unitàries.
  • Familiaritzar-se amb la història i l'evolució de JUnit.

Què és JUnit?

JUnit és un framework de proves unitàries per a Java que permet als desenvolupadors escriure i executar tests automatitzats. Les proves unitàries són petites proves que verifiquen el comportament d'una unitat de codi, com ara una funció o un mètode, de manera aïllada.

Característiques clau de JUnit

  • Automatització de proves: Permet executar tests de manera automàtica, sense intervenció manual.
  • Repetibilitat: Els tests es poden executar tantes vegades com sigui necessari, assegurant que els canvis en el codi no introdueixin errors.
  • Integració amb IDEs: JUnit s'integra fàcilment amb entorns de desenvolupament integrats (IDEs) com Eclipse, IntelliJ IDEA i NetBeans.
  • Suport per a assertions: Proporciona una varietat d'assertions per verificar els resultats esperats.
  • Anotacions: Utilitza anotacions per definir mètodes de test, configuració i neteja.

Beneficis de les proves unitàries

  • Detecció primerenca d'errors: Les proves unitàries ajuden a identificar errors en les primeres etapes del desenvolupament.
  • Facilitat de manteniment: Amb proves unitàries, és més fàcil refactoritzar el codi sense introduir errors.
  • Documentació del codi: Els tests poden servir com a documentació viva del comportament del codi.
  • Confiança en el codi: Proporciona confiança als desenvolupadors que el seu codi funciona com s'espera.

Història i evolució de JUnit

JUnit va ser creat per Kent Beck i Erich Gamma a finals dels anys 90. Des de llavors, ha evolucionat significativament, amb diverses versions que han afegit noves funcionalitats i millores.

Versions de JUnit

Versió Característiques clau
JUnit 3 Introducció de la classe TestCase i el mètode setUp i tearDown.
JUnit 4 Introducció d'anotacions com @Test, @Before, @After, @BeforeClass, @AfterClass.
JUnit 5 Modularitat, noves anotacions, suport per a proves dinàmiques i millores en la integració amb altres eines.

Exemple pràctic

A continuació, es mostra un exemple senzill d'un test amb JUnit:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

    @Test
    public void testAddition() {
        Calculator calculator = new Calculator();
        int result = calculator.add(2, 3);
        assertEquals(5, result, "2 + 3 hauria de ser 5");
    }
}

Explicació del codi

  • Importacions: Importem les classes necessàries de JUnit.
  • Classe de test: CalculatorTest és la classe que conté els nostres tests.
  • Mètode de test: testAddition és un mètode de test anotat amb @Test.
  • Assertions: Utilitzem assertEquals per verificar que el resultat de la suma és correcte.

Exercici pràctic

Exercici

Crea una classe Calculator amb un mètode add que sumi dos nombres. Escriu un test per verificar que el mètode add funciona correctament.

Solució

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

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

    @Test
    public void testAddition() {
        Calculator calculator = new Calculator();
        int result = calculator.add(2, 3);
        assertEquals(5, result, "2 + 3 hauria de ser 5");
    }
}

Conclusió

En aquest tema, hem après què és JUnit, els seus beneficis i la seva història. També hem vist un exemple pràctic de com escriure un test amb JUnit. En el proper tema, veurem com configurar JUnit en el nostre entorn de desenvolupament.

© Copyright 2024. Tots els drets reservats