En aquest tema, explorarem les assertions més comunes que s'utilitzen en JUnit per verificar el comportament del codi. Les assertions són fonamentals per a la creació de tests, ja que ens permeten comprovar si els resultats obtinguts són els esperats.

  1. Introducció a les Assertions

Les assertions són mètodes estàtics que s'utilitzen per verificar que una condició sigui certa. Si la condició no es compleix, el test falla. JUnit proporciona una varietat d'assertions per a diferents tipus de verificacions.

  1. Assertions Comunes

2.1. assertEquals

Comprova que dos valors són iguals. Aquesta és probablement l'assertion més utilitzada.

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

public class ExampleTest {
    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals(5, result, "La suma de 2 i 3 ha de ser 5");
    }
}

2.2. assertNotEquals

Comprova que dos valors no són iguals.

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

public class ExampleTest {
    @Test
    public void testSubtraction() {
        int result = 5 - 3;
        assertNotEquals(1, result, "La resta de 5 i 3 no ha de ser 1");
    }
}

2.3. assertTrue

Comprova que una condició és certa.

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

public class ExampleTest {
    @Test
    public void testIsPositive() {
        int number = 5;
        assertTrue(number > 0, "El número ha de ser positiu");
    }
}

2.4. assertFalse

Comprova que una condició és falsa.

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

public class ExampleTest {
    @Test
    public void testIsNegative() {
        int number = -5;
        assertFalse(number > 0, "El número no ha de ser positiu");
    }
}

2.5. assertNull

Comprova que un objecte és null.

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

public class ExampleTest {
    @Test
    public void testObjectIsNull() {
        Object obj = null;
        assertNull(obj, "L'objecte ha de ser null");
    }
}

2.6. assertNotNull

Comprova que un objecte no és null.

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

public class ExampleTest {
    @Test
    public void testObjectIsNotNull() {
        Object obj = new Object();
        assertNotNull(obj, "L'objecte no ha de ser null");
    }
}

2.7. assertArrayEquals

Comprova que dos arrays són iguals.

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

public class ExampleTest {
    @Test
    public void testArrayEquals() {
        int[] expected = {1, 2, 3};
        int[] actual = {1, 2, 3};
        assertArrayEquals(expected, actual, "Els arrays han de ser iguals");
    }
}

  1. Exercicis Pràctics

Exercici 1

Escriu un test que comprovi que la multiplicació de 4 i 5 és igual a 20.

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

public class MultiplicationTest {
    @Test
    public void testMultiplication() {
        int result = 4 * 5;
        assertEquals(20, result, "La multiplicació de 4 i 5 ha de ser 20");
    }
}

Exercici 2

Escriu un test que comprovi que una cadena de text no és null.

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

public class StringTest {
    @Test
    public void testStringIsNotNull() {
        String str = "JUnit";
        assertNotNull(str, "La cadena no ha de ser null");
    }
}

  1. Resum

En aquesta secció, hem après sobre les assertions més comunes en JUnit, incloent assertEquals, assertNotEquals, assertTrue, assertFalse, assertNull, assertNotNull i assertArrayEquals. Aquestes assertions són fonamentals per verificar el comportament del codi i assegurar-nos que els resultats obtinguts són els esperats. Hem proporcionat exemples pràctics i exercicis per reforçar els conceptes apresos.

En el següent tema, explorarem les assertions avançades que ens permeten realitzar verificacions més complexes.

© Copyright 2024. Tots els drets reservats