Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Claro, aquí tienes algunas de las principales anotaciones que puedes utilizar para
hacer testing en Java con Mockito, JUnit 5 y Spring Boot:
1. Mockito:
o @Mock: Crea un objeto simulado para una clase o interfaz.
o @Spy: Crea un objeto simulado que también mantiene el comportamiento
original de la clase.
o @InjectMocks: Inyecta automáticamente los mocks o spies creados en la
clase bajo prueba.
o @Captor: Captura los argumentos pasados a los métodos simulados para
su posterior verificación.
2. JUnit 5:
o @Test: Indica que un método es un método de prueba.
o @BeforeEach: Anotación para un método que se ejecuta antes de cada
método de prueba para realizar tareas de inicialización.
o @AfterEach: Anotación para un método que se ejecuta después de cada
método de prueba para realizar tareas de limpieza.
o @BeforeAll: Anotación para un método estático que se ejecuta una vez
antes de todos los métodos de prueba en una clase.
o @AfterAll: Anotación para un método estático que se ejecuta una vez
después de todos los métodos de prueba en una clase.
o @DisplayName: Proporciona un nombre personalizado para un método o
clase de prueba que se mostrará en los informes de ejecución.
o @ParameterizedTest: Indica que un método es un método de prueba
parametrizado.
3. Spring Boot:
o @SpringBootTest: Inicia el contexto de Spring para las pruebas de
integración.
o @WebMvcTest: Inicia el contexto de Spring específicamente para las
pruebas de controladores web.
o @DataJpaTest: Inicia el contexto de Spring específicamente para las
pruebas de repositorios JPA.
o @MockBean: Crea un mock de un bean de Spring para su uso en pruebas.
o @Autowired: Inyecta dependencias en una clase de prueba.
o @TestConfiguration: Anotación utilizada para configurar una clase de
configuración específica para pruebas.
Estas son solo algunas de las anotaciones más comunes que puedes utilizar al realizar
pruebas en Java con Mockito, JUnit 5 y Spring Boot. Hay muchas otras anotaciones
disponibles, pero estas deberían ser un buen punto de partida para tus pruebas. Recuerda
consultar la documentación oficial de cada herramienta para obtener más detalles y
ejemplos específicos.
2/2
¡Por supuesto! A continuación, te proporciono ejemplos específicos de cómo usar estas
anotaciones en pruebas unitarias y de integración con Mockito, JUnit 5 y Spring Boot.
Supongamos que tenemos una clase Calculator con un método add que queremos
probar. Vamos a simular la dependencia de otra clase MathUtils utilizando Mockito.
2/2
Supongamos que tenemos una clase Calculator con un método add que queremos
probar. Vamos a simular la dependencia de otra clase MathUtils utilizando Mockito.
java
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Test;
class Calculator {
private MathUtils mathUtils;
class MathUtils {
public int add(int a, int b) {
return a + b;
}
}
class CalculatorTest {
@Test
void testAdd() {
// Arrange
MathUtils mathUtils = mock(MathUtils.class);
when(mathUtils.add(2, 3)).thenReturn(5);
Calculator calculator = new Calculator(mathUtils);
// Act
int result = calculator.add(2, 3);
// Assert
assertEquals(5, result);
}
}
Supongamos que tenemos una clase StringUtils con un método reverse que
queremos probar.
Supongamos que tenemos una clase Calculator con un método add que queremos
probar. Vamos a simular la dependencia de otra clase MathUtils utilizando Mockito.
java
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Test;
class Calculator {
private MathUtils mathUtils;
class MathUtils {
public int add(int a, int b) {
return a + b;
}
}
class CalculatorTest {
@Test
void testAdd() {
// Arrange
MathUtils mathUtils = mock(MathUtils.class);
when(mathUtils.add(2, 3)).thenReturn(5);
Calculator calculator = new Calculator(mathUtils);
// Act
int result = calculator.add(2, 3);
// Assert
assertEquals(5, result);
}
}
Supongamos que tenemos una clase StringUtils con un método reverse que
queremos probar.
java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class StringUtils {
public String reverse(String input) {
return new StringBuilder(input).reverse().toString();
}
}
class StringUtilsTest {
@Test
void testReverse() {
// Arrange
StringUtils stringUtils = new StringUtils();
String input = "hello";
// Act
String result = stringUtils.reverse(input);
// Assert
assertEquals("olleh", result);
}
}
java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
private UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@GetMapping("/users")
public List<User> getUsers() {
return userService.getUsers();
}
}
class UserService {
public List<User> getUsers() {
// Aquí iría la lógica para obtener usuarios desde una base de
datos u otra fuente
return List.of(new User("John"), new User("Jane"));
}
}
class UserControllerTest {
@MockBean
private UserService userService;
@Autowired
private MockMvc mockMvc;
@Test
void testGetUsers() throws Exception {
// Arrange
when(userService.getUsers()).thenReturn(List.of(new
User("TestUser")));
// Act
mockMvc.perform(get("/users"))
.andExpect(status().isOk())
.andExpect(jsonPath("$", hasSize(1)))
.andExpect(jsonPath("$[0].name").value("TestUser"));
}
}
Estos ejemplos te dan una idea de cómo usar las anotaciones de Mockito, JUnit 5 y
Spring Boot en pruebas unitarias y de integración. Puedes modificarlos según tus
necesidades y ajustarlos a tus clases y métodos específicos que desees probar.
La clase Assert proporciona una serie de métodos estáticos que puedes utilizar para
realizar afirmaciones en tus pruebas unitarias. Estos métodos te permiten verificar que
ciertas condiciones se cumplan y, en caso contrario, lanzarán una excepción si la
afirmación falla.
Aquí tienes algunos ejemplos de cómo utilizar los métodos de Assert en tus pruebas:
Estos son solo algunos ejemplos de los métodos disponibles en Assert. Puedes explorar
la documentación de JUnit 5 y la clase Assert para obtener una lista completa de los
métodos disponibles y sus diferentes variaciones.
Recuerda que las aserciones son fundamentales para verificar que el comportamiento de
tu código sea el esperado y que los resultados obtenidos durante las pruebas se ajusten a
tus expectativas.
Documentación de Mockito:
https://javadoc.io/doc/org.mockito/mockito-core/latest/index.html
Recuerda que para utilizar las anotaciones de Mockito, debes asegurarte de tener las
dependencias correctas en tu proyecto y haber configurado correctamente tu entorno de
prueba.