Saltar al contenido

¿Por qué MockMvc siempre devuelve contenido vacío ()?

Solución:

Si sus métodos de acción (métodos con @RequestMapping anotación) devuelve instancias de ModelAndView o trabajas con Model, tienes que probarlo usando MockMvcResultMatchers#model función:

.andExpect(MockMvcResultMatchers.model().attribute("phone", "iPhone"))
.andExpect(MockMvcResultMatchers.model().size(1))

MockMvcResultMatchers#contnet es apropiado para los métodos de acción REST (métodos con @RequestBody anotación).


Para comprender mejor cómo probar los controladores Spring MVC y Spring REST, consulte estos enlaces:

  • Prueba de aplicaciones Spring MVC: formularios
  • Prueba de aplicaciones Spring MVC: API REST

Solo agrego otra razón para este error, que me tomó todo un día descubrir. Creé con éxito un APITest usando mockito y mockmvc class, usando el método perform. Luego copié el código para producir otro servicio y comencé a tener un cuerpo vacío una y otra vez.

No obstante, al final del día decidí comparar cada clase copiada de un proyecto a otro. La única diferencia que encontré fue la @EqualsAndHashCode anotación en mi solicitud DTO que recibe el nuevo controlador.

Entonces, la recomendación es: agregue el @EqualsAndHashCode anotación en sus clases DTO.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *