Curso de JUnit en Java
Aprende a realizar pruebas unitarias en Java con JUnit 5
1. ¿Qué es JUnit?
JUnit es un framework de pruebas unitarias para Java. Permite automatizar pruebas de métodos y clases, asegurando que el código funcione como se espera.
2. Configuración
Si usas Maven, agrega la dependencia en tu pom.xml
:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.9.2</version>
<scope>test</scope>
</dependency>
3. Anotaciones Principales
@Test
: Define un método de prueba.@BeforeEach
: Código que se ejecuta antes de cada prueba.@AfterEach
: Código que se ejecuta después de cada prueba.@BeforeAll
: Se ejecuta una vez antes de todas las pruebas.@AfterAll
: Se ejecuta una vez después de todas las pruebas.@DisplayName
: Personaliza el nombre de la prueba.@Disabled
: Desactiva temporalmente una prueba.
4. Ejemplo Básico
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CalculadoraTest {
@Test
void sumaTest() {
int resultado = 2 + 3;
assertEquals(5, resultado);
}
}
5. Assertions Comunes
assertEquals(expected, actual)
assertTrue(condition)
assertFalse(condition)
assertThrows(Exception.class, () -> {...})
6. Ejercicio Práctico Final
Implementa una clase Calculadora
con los métodos: suma
, resta
, multiplica
, divide
. Luego crea pruebas unitarias con JUnit para validar su comportamiento.
Clase Calculadora
public class Calculadora {
public int suma(int a, int b) {
return a + b;
}
public int resta(int a, int b) {
return a - b;
}
public int multiplica(int a, int b) {
return a * b;
}
public int divide(int a, int b) {
if (b == 0) throw new IllegalArgumentException("No se puede dividir entre cero");
return a / b;
}
}
Clase de Pruebas
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculadoraTest {
Calculadora calc = new Calculadora();
@Test
void testSuma() {
assertEquals(7, calc.suma(3, 4));
}
@Test
void testResta() {
assertEquals(1, calc.resta(5, 4));
}
@Test
void testMultiplica() {
assertEquals(20, calc.multiplica(5, 4));
}
@Test
void testDivide() {
assertEquals(2, calc.divide(10, 5));
}
@Test
void testDivideEntreCero() {
assertThrows(IllegalArgumentException.class, () -> calc.divide(10, 0));
}
}