«El código sin pruebas es legacy»: por qué deberías empezar hoy mismo
\n\nImagina: has escrito una aplicación en Java. Funciona. Pero tienes miedo de cambiar algo, porque un movimiento en falso y todo se derrumbará. ¿Te suena familiar? Bienvenido al mundo donde las pruebas de Java no son un capricho, sino una habilidad de supervivencia.
\n\nMuchos desarrolladores principiantes posponen las pruebas «para después». Dicen: primero aprenderé a escribir código, luego lo resolveré. Pero la verdad es que las pruebas unitarias en Java no son una carga adicional, sino tu red de seguridad. Te obligan a escribir código de mayor calidad, más modular y comprensible. Y sí, los empleadores valoran mucho a los desarrolladores que saben cubrir su código con pruebas.
\n\nEn este artículo, analizaremos por dónde empezar con las pruebas de Java para principiantes. Conocerás las herramientas principales — JUnit y Mockito, escribirás tus primeras pruebas y entenderás cómo no caer en «probar por probar». ¡Allá vamos!
\n\nPaso 1: Configuración del entorno — tu primer banco de pruebas
\n\nAntes de escribir pruebas, debes preparar el entorno. La buena noticia: para la automatización de pruebas en Java no necesitas nada extraordinario. Todo lo que ya tienes — JDK y un IDE (IntelliJ IDEA o Eclipse) — es suficiente.
\n\nMaven o Gradle — elige el gestor de construcción
\n\nLos proyectos Java modernos rara vez prescinden de un sistema de construcción. Usaremos Maven — es el estándar de facto para la mayoría de los proyectos. Aquí tienes un pom.xml mínimo con dependencias para pruebas:
<dependencies>\n <!-- JUnit 5 — framework principal para pruebas -->\n <dependency>\n <groupId>org.junit.jupiter</groupId>\n <artifactId>junit-jupiter-api</artifactId>\n <version>5.10.0</version>\n <scope>test</scope>\n </dependency>\n \n <!-- Mockito para crear objetos mock -->\n <dependency>\n <groupId>org.mockito</groupId>\n <artifactId>mockito-core</artifactId>\n <version>5.6.0</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n\nObserva el <scope>test</scope> — estas bibliotecas no se incluirán en la compilación final de la aplicación, solo son necesarias para ejecutar las pruebas.
Paso 2: JUnit — tu primera prueba real
\n\nJUnit es la base sobre la que se construyen todas las pruebas en Java. Con él escribes pruebas unitarias: verificas el funcionamiento de un método o clase de forma aislada.
\n\nEscribimos la primera prueba
\n\nSupongamos que tenemos una calculadora simple:
\n\npublic class Calculator {\n public int add(int a, int b) {\n return a + b;\n }\n \n public int divide(int a, int b) {\n if (b == 0) {\n throw new IllegalArgumentException("¡No se puede dividir por cero!");\n }\n return a / b;\n }\n}\n\nAhora escribamos una prueba para ella. Crea una clase en la carpeta src/test/java:
import org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\nclass CalculatorTest {\n \n private final Calculator calculator = new Calculator();\n \n @Test\n void testAdd() {\n // Arrange (preparación)\n int a = 2;\n int b = 3;\n \n // Act (acción)\n int result = calculator.add(a, b);\n \n // Assert (verificación)\n assertEquals(5, result, "2 + 3 debería ser igual a 5");\n }\n \n @Test\n void testDivideByZero() {\n // Verificamos que el método lanza una excepción\n assertThrows(IllegalArgumentException.class, \n () -> calculator.divide(10, 0));\n }\n}\n\nEjecuta la prueba — la barra verde en el IDE te dirá que todo funciona. Felicidades, acabas de dar el primer paso en unit testing Java.