En aquesta secció, aprendrem a escriure el nostre primer test utilitzant JUnit. Aquest és un pas fonamental per començar a treballar amb JUnit i entendre com funciona el procés de testing en Java.
Objectius
- Configurar un projecte Java per utilitzar JUnit.
- Escriure i executar un test bàsic amb JUnit.
- Entendre els conceptes bàsics de les assertions.
- Configuració del Projecte
1.1. Crear un Projecte Java
Primer, necessitem crear un projecte Java. Pots utilitzar qualsevol entorn de desenvolupament integrat (IDE) com IntelliJ IDEA, Eclipse o NetBeans. Aquí utilitzarem IntelliJ IDEA com a exemple.
- Obre IntelliJ IDEA.
- Crea un nou projecte seleccionant
File > New > Project
. - Selecciona
Java
i assegura't que el JDK estigui configurat correctament. - Dona un nom al projecte i selecciona la ubicació on vols guardar-lo.
1.2. Afegir JUnit al Projecte
Per utilitzar JUnit, necessitem afegir la seva dependència al nostre projecte. Si estàs utilitzant Maven o Gradle, pots afegir la dependència al fitxer pom.xml
o build.gradle
respectivament.
Maven
Afegeix la següent dependència al teu pom.xml
:
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency>
Gradle
Afegeix la següent dependència al teu build.gradle
:
- Escriure el Primer Test
2.1. Crear una Classe de Test
Crea una nova classe de test dins del directori src/test/java
. Anomena la classe CalculatorTest
.
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"); } }
2.2. Crear la Classe Calculator
Crea una classe Calculator
dins del directori src/main/java
amb el següent codi:
2.3. Explicació del Codi
- Classe de Test (
CalculatorTest
): Aquesta classe conté els nostres tests. Utilitzem l'anotació@Test
per indicar que el mètodetestAddition
és un test. - Mètode de Test (
testAddition
): Aquest mètode crea una instància deCalculator
i comprova si el mètodeadd
retorna el resultat esperat. - Assertion (
assertEquals
): UtilitzemassertEquals
per verificar que el resultat decalculator.add(2, 3)
és5
. Si el resultat no és5
, el test fallarà.
- Executar el Test
3.1. Executar el Test des de l'IDE
- Fes clic dret sobre la classe
CalculatorTest
. - Selecciona
Run 'CalculatorTest'
.
3.2. Resultats del Test
Si tot està configurat correctament, hauries de veure que el test passa sense errors. Això significa que el mètode add
de la classe Calculator
funciona com s'esperava.
- Exercici Pràctic
Exercici
Crea un nou mètode a la classe Calculator
anomenat subtract
que resti dos nombres. Escriu un test per verificar que aquest mètode funciona correctament.
Solució
Classe Calculator
public class Calculator { public int add(int a, int b) { return a + b; } public int subtract(int a, int b) { return a - b; } }
Classe CalculatorTest
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"); } @Test public void testSubtraction() { Calculator calculator = new Calculator(); int result = calculator.subtract(5, 3); assertEquals(2, result, "5 - 3 hauria de ser 2"); } }
Conclusió
En aquesta secció, hem après a configurar un projecte Java per utilitzar JUnit, escriure el nostre primer test i executar-lo. També hem vist com utilitzar les assertions per verificar els resultats dels nostres tests. A la següent secció, explorarem les anotacions bàsiques de JUnit per millorar els nostres tests.
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