Ich migriere einen Spring MVC Controller, um die neueren Style-Annotationen zu verwenden, und Unit-Test eine Controller-Methode, die ein Befehlsobjekt validiert (siehe einfaches Beispiel unten).Mocking Spring MVC BindingResult bei der Verwendung von Anmerkungen
@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
}
Mein Problem ist, ich habe die Controller-Methode in meinem Unit-Test zu nennen, und Mock Werte bieten ihre Unterschrift zu erfüllen den Code richtig zu trainieren, und ich kann nicht herausfinden, wie ein BindingResult zu verspotten.
Im alten Stil Controller die Unterschrift nahm einfach eine HttpServletRequest und HttpServletResponse, die leicht zu verspotten waren, aber aufgrund der Flexibilität der neuen Annotation Stil, muss man viel mehr in über die Signatur.
Wie kann man ein Spring BindingResult für die Verwendung in einem Komponententest verspotten?
Hallo Markus, das brachte mich auf den richtigen Weg. Verwendung eines BindingResult bindingResult = new BeanPropertyBindingResult (command, "command"); und das Befehlsobjekt in dem Modell innerhalb meines Tests festzuhalten schien meinen Test zu sortieren. –
So mache ich es auch. –
Danke dafür, hat mir sehr geholfen! – Stefan