JUnit
Table of Contents
Introducción
JUnit es un framework para Java que nos permite escribir tests automáticos, especialmente tests unitarios (de ahí su nombre) aunque también se usa para tests de integración.
En los siguientes apartados te voy a explicar cómo integrar este framework en tus proyectos de Gradle en Java. Si usas Maven, Ant o escribes un programa sin un constructor, entonces la forma de integrarlo varía. Al final, JUnit es una biblioteca que tienes que añadir a tu proyecto de Java.
Cómo añadir JUnit a tus proyectos
Se tiene que añadir como dependencia en el proyecto en el que lo quieras usar. Con Gradle es muy fácil porque, al ejecutar gradle init, se te pregunta qué framework usar para las pruebas, pudiendo seleccionar JUnit:
Select test framework: 1: JUnit 4 2: TestNG 3: Spock 4: JUnit Jupiter Enter selection (default: JUnit Jupiter) [1..4]
A partir de ahí, si abres tu proyecto, en el el script de Gradle build.gradle.kts verás que está añadido en la sección de dependencies:
dependencies {
// Use JUnit test framework.
testImplementation(libs.junit)
// ...
}
Estructura de directorios para JUnit
En Gradle, cuando añades JUnit, verás que dentro de la carpeta src del subproyecto tienes dos carpetas (al menos) a saber:
maincon el código fuente del programa organizado en paquetes, ytestcon el código JUnit de tus tests que sigue la misma organización de paquetes de tu programa.
El código de JUnit son clases "espejo" de las clases de tu programa que quieres probar. Así, si tienes una clase, dentro de main, llamada es.eed.model.Person tendrás que crear una clase, dentro de test, llamada es.eed.model.PersonTest. Así, tendrías:
- el fichero
src/main/java/es/eed/model/Person.javacon el código fuente de la clase, y - el fichero
src/test/java/es/eed/model/PersonTest.javacon el código de JUnit para las pruebas.
Esta sería la jerarquía completa del proyecto de Gradle, donde como ves solo se han creado tests para la clase es.eed.App y es.eed.model.Person:
.
├── app
│ ├── build.gradle.kts
│ └── src
│ ├── main
│ │ └── java
│ │ └── es
│ │ └── eed
│ │ ├── App.java
│ │ └── model
│ │ ├── Person.java
│ │ ├── Dog.java
│ │ ├── Cat.java
│ └── test
│ └── java
│ └── es
│ └── eed
│ ├── AppTest.java
│ └── model
│ └── PersonTest.java
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts