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.