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
Javai 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ó@Testper indicar que el mètodetestAdditionés un test. - Mètode de Test (
testAddition): Aquest mètode crea una instància deCalculatori comprova si el mètodeaddretorna el resultat esperat. - Assertion (
assertEquals): UtilitzemassertEqualsper 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
