Estoy migrando un controlador MVC de Spring para usar las anotaciones de estilo más nuevas, y quiero probar un controlador de un método que valida un objeto de comando (vea el ejemplo simple a continuación).Mocking Spring MVC BindingResult al usar las anotaciones
@RequestMapping(method = RequestMethod.POST)
public String doThing(Command command, BindingResult result,
HttpServletRequest request, HttpServletResponse response,
Map<String, Object> model){
ThingValidator validator = new ThingValidator();
validator.validate(command, result);
... other logic here
}
Mi problema es que tengo que llamar al método del controlador en mi unidad de prueba, y proporcionar los valores simulados para satisfacer su firma para ejercer el código correctamente, y no puedo encontrar la manera de burlarse de un BindingResult.
En el controlador antiguo, la firma simplemente tomaba HttpServletRequest y HttpServletResponse, que eran fácilmente modificables, pero debido a la flexibilidad del nuevo estilo de anotación, uno tiene que pasar mucho más a través de la firma.
¿Cómo se puede simular un Spring BindingResult para su uso en una prueba unitaria?
Hola Mark, que me puso en el camino correcto gracias. Usando un BindingResult bindingResult = new BeanPropertyBindingResult (comando, "comando"); y pegar el objeto de comando en el modelo dentro de mi prueba parecía ordenar mi prueba. –
Así es como yo también lo hago. –
¡Gracias por eso, me han ayudado mucho! – Stefan