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.
- 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.
- 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"); } }
- 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"); } }
- 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.
Curs de JUnit
Mòdul 1: Introducció a JUnit
Mòdul 2: Anotacions Bàsiques de JUnit
- Entenent @Test
- Utilitzant @Before i @After
- Utilitzant @BeforeClass i @AfterClass
- Ignorant Tests amb @Ignore
Mòdul 3: Assertions a JUnit
Mòdul 4: Tests Parametritzats
- Introducció als Tests Parametritzats
- Creant Tests Parametritzats
- Utilitzant @ParameterizedTest
- Tests Parametritzats Personalitzats
Mòdul 5: Suites de Test
Mòdul 6: Mocking amb JUnit
Mòdul 7: Funcions Avançades de JUnit
Mòdul 8: Millors Pràctiques i Consells
- Escrivint Tests Efectius
- Organitzant el Codi de Test
- Desenvolupament Guiat per Tests (TDD)
- Integració Contínua amb JUnit