Conexión del marco JUnit
Para probar el código Java, tenemos un gran marco llamado JUnit . Funciona muy bien, se actualiza constantemente, es muy popular y, por supuesto, Intellij IDEA está muy integrado con él.
Ahora todo el mundo está usando la quinta versión de este marco: JUnit 5 , aunque en muchos proyectos todavía puedes encontrar su cuarta versión. No son muy diferentes, pero vamos a echar un vistazo a la última de todos modos. Creo que para cuando empieces a escribir pruebas activamente, aprobarás mi elección.
Entonces, ¿cómo agregar JUnit al proyecto? Después de aprender Maven, será fácil: simplemente agregue este código a su pom.xml:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
Por cierto, si desea que Maven ejecute sus pruebas en la etapa de compilación ( etapa de prueba ), debe agregar un fragmento más a pom.xml:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
@Anotación de prueba
Digamos que tienes una clase que quieres probar. ¿Cuál es la mejor manera de hacer esto? Comencemos con un ejemplo, porque es difícil probar una clase abstracta :)
Supongamos que tenemos una clase Calculadora que puede realizar 4 operaciones básicas: suma, resta, multiplicación y división. Escribámoslo:
class Calculator {
public int add(int a, int b) {
return a+b;
}
public int sub(int a, int b) {
return a-b;
}
public int mul (int a, int b) {
return a*b;
}
public int div(int a, int b) {
return a/b;
}
}
Queremos probar los métodos de esta clase. Nunca se sabe, en el futuro cambian algo y todo dejará de funcionar. ¿Cómo podemos escribir pruebas para ello?
Necesitamos crear otra clase. Para ello, suelen tomar el mismo nombre y añadir el sufijo Test . Para cada método, debe agregar al menos un método de prueba. Ejemplo:
class CalculatorTest {
@Test
public void add() {
}
@Test
public void sub() {
}
@Test
public void mul() {
}
@Test
public void div() {
}
}
Solía haber un requisito de que el nombre del método comenzara con la palabra test , pero ya no es necesario.
Ejemplos de prueba JUnit
Escribamos algunos ejemplos en los que probaremos los métodos de nuestra clase CalculatorTest :
class CalculatorTest {
@Test
public void add() {
Calculator calc = new Calculator();
int result = calc.add(2, 3);
assertEquals(5, result);
}
@Test
public void sub() {
Calculator calc = new Calculator();
int result = calc.sub(10, 10);
assertEquals(0, result);
}
@Test
public void mul() {
Calculator calc = new Calculator();
int result = calc.mul(-5, -3);
assertEquals(15, result);
}
@Test
public void div() {
Calculator calc = new Calculator();
int result = calc.div(2, 3);
assertEquals(0, result);
}
}
Así es como se ve una prueba típica de JUnit. De lo interesante: aquí se usa el método especial assertEquals() : compara los parámetros que se le pasan, como lo indica la palabra igual en su nombre.
Si los parámetros pasados a assertEquals() no son iguales, el método generará una excepción y la prueba fallará. Esta excepción no evitará que se ejecuten otras pruebas.