Está en la página 1de 4

15/2/23, 23:44 PRUEBAS de INTEGRACIÓN en SPRING BOOT

PRUEBAS de INTEGRACIÓN en SPRING BOOT


Spring, Spring Boot / Por Ricardo

Como sugiere el nombre, las pruebas de integración se enfocan en integrar diferentes


capas de la aplicación. Eso también significa que no hay mocks o clases simuladas en
nuestras pruebas, es decir, se ejecutará nuestro código desde la capa primera donde se
expone nuestros datos, hasta la última capa dónde se recogen o manipulan los datos.

Configurando una prueba de


integración
Anotación @SpringBootTest

La anotación @SpringBootTest es útil cuando necesitamos arrancar todo el contexto de test


de Spring. La anotación funciona creando el ApplicationContext que se utilizará en nuestras
pruebas.

Utiliza SpringBootContextLoader como ContextLoader predeterminado cuando no se


define un @ContextConfiguration(loader=…) específico.
Busca automáticamente una @SpringBootConfiguration cuando no se usa una
@Configuración anidada y no se especifican clases explícitas.
Permite definir propiedades de entorno personalizadas mediante el atributo de
propiedades.
Permite que los argumentos de la aplicación se definan utilizando el atributo args.
Brinda soporte para diferentes modos de entorno web, incluida la capacidad de iniciar
un servidor web en pleno funcionamiento escuchando en un puerto definido o
aleatorio.

1 @SpringBootTest
2 class UsuarioControladorTest {}

Anotación @AutoConfigureMockMvc

https://programandoenjava.com/pruebas-de-integracion-en-spring-boot/ 1/4
15/2/23, 23:44 PRUEBAS de INTEGRACIÓN en SPRING BOOT

La anotación @AutoConfigureMockMvc habilita y configura la configuración automática de


MockMvc, que se puede aplicar a una clase en la que se realiza los tests.

1 @SpringBootTest
2 @AutoConfigureMockMvc
3 class UsuarioControladorTest {
4  
5     @Autowired
6     private MockMvc mockMvc;
7 }

MockMvc

Para realizar nuestra prueba de integración necesitaremos la forma de poder testear


nuestras hipotesis a través de una petición y la respuesta esperada para ello tenemos que
inyectar a través de @Autowired.

MockMvc nos proporciona métodos en los que podemos realizar llamadas HTTP a nuestro
servidor de pruebas que se crea gracias a el contexto de test en Spring Boot y además
herramientas para enviar datos en nuestra petición HTTP y además los datos que esperamos
por dicha petición. Ejemplo del uso de MockMvc:

1 @SpringBootTest
2 @AutoConfigureMockMvc
3 class UsuarioControladorTest {
4     @Autowired
5     private MockMvc mockMvc;
6  
7     @Test
8     public void CUANDO_se_llama_a_usuarios_ENTONCES_el_estado_es_200() throws E
9  
10         mockMvc.perform(MockMvcRequestBuilders.get("/usuarios")
11                         .contentType(MediaType.APPLICATION_JSON))
12                 .andExpect(MockMvcResultMatchers
13                         .status()
14                         .isOk())
15                 .andExpect(MockMvcResultMatchers
16                         .content()
17                         .contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
18     }
19 }

Método perform()

Es el método principal que es usado para realizar nuestras pruebas de integración, en el que
cuál ejecuta nuestra petición en la que luego podremos testear la respuesta esperada. Éste
método acepta un parámetro en el que se suele usar los métodos estáticos de la clase

https://programandoenjava.com/pruebas-de-integracion-en-spring-boot/ 2/4
15/2/23, 23:44 PRUEBAS de INTEGRACIÓN en SPRING BOOT

MockMvcRequestBuilders para especificar que tipo de método HTTP se usará para realizar la
petición.

1 @SpringBootTest
2 @AutoConfigureMockMvc
3 class UsuarioControladorTest {
4     @Autowired
5     private MockMvc mockMvc;
6  
7     @Test
8     public void perform() throws Exception {
9  
10         mockMvc.perform(MockMvcRequestBuilders.get("/usuarios")
11                         .contentType(MediaType.APPLICATION_JSON))
12     }
13 }

Método andExpect()

El método andExpect() se usa tras llamar el método perform() para verificar diferentes
parámetros de respuesta.

1 @SpringBootTest
2 @AutoConfigureMockMvc
3 class UsuarioControladorTest {
4     @Autowired
5     private MockMvc mockMvc;
6  
7     @Test
8     public void CUANDO_se_llama_a_usuarios_ENTONCES_el_estado_es_200() throws E
9  
10         mockMvc.perform(MockMvcRequestBuilders.get("/usuarios")
11                         .contentType(MediaType.APPLICATION_JSON))
12                 .andExpectAll(MockMvcResultMatchers
13                                 .status()
14                                 .isOk(),
15                         MockMvcResultMatchers
16                                 .content()
17                                 .contentTypeCompatibleWith(MediaType.APPLICATIO
18                 .andExpect(MockMvcResultMatchers
19                         .status()
20                         .isOk())
21                 .andExpect(MockMvcResultMatchers
22                         .content()
23                         .contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
24     }
25 }

jsonPath()

Podemos usar el método jsonPath() para verificar diferentes datos de respuesta que sean
de tipo JSON gracias la sintaxis de jsonpath.

1 @SpringBootTest
https://programandoenjava.com/pruebas-de-integracion-en-spring-boot/ 3/4
15/2/23, 23:44 PRUEBAS de INTEGRACIÓN en SPRING BOOT

2 @AutoConfigureMockMvc
3 class UsuarioControladorTest {
4     @Autowired
5     private MockMvc mockMvc;
6  
7     @Test
8     public void CUANDO_se_llama_a_usuarios_ENTONCES_el_estado_es_200() throws E
9  
10         mockMvc.perform(MockMvcRequestBuilders.get("/usuarios")
11                         .contentType(MediaType.APPLICATION_JSON))
12                 .andExpect(status().isOk())
13                 .andExpect(MockMvcResultMatchers
14                         .content()
15                         .contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
16                 .andExpect(jsonPath("$[0].nombre", is("Juan")));
17     }
18 }

← Entrada anterior
Entrada siguiente →

Related Posts

@Autowired en SPRING BOOT

@Component en SPRING BOOT

Sobre míTutorialesPolitica de cookiesPolitica de privacidad

¡Regístrate para recibir actualizaciones por correo electrónico y más!

Dirección de correo electr Suscribirse

Copyright © 2023 Programando en Java | Powered by Programando en Java

Usamos cookies para asegurar que te damos la mejor experiencia en nuestra web. Si continúas
usando este sitio, asumiremos que estás de acuerdo con ello.

Aceptar

https://programandoenjava.com/pruebas-de-integracion-en-spring-boot/ 4/4

También podría gustarte