如何测试Spring 2.5控制器上使用的活页夹/属性编辑器


问题内容

我有一个带注释的控制器,该方法带有一种期望模型和绑定结果的方法

@RequestMapping(method = RequestMethod.POST)
  public ModelAndView submit(@ModelAttribute(“user”) User user, BindingResult bindingResult) {
     //do something
}

如何测试绑定结果?如果我用用户和绑定结果调用该方法,那么我不会测试绑定过程。我认为,有些东西需要MockHttpServletRequest并返回模型和绑定结果,有什么建议吗?


问题答案:

您是要测试绑定(在调用此方法之前发生)还是要测试“提交”处理程序方法?

您可以使用以下方法测试绑定:

 @Test
    public void testHandlerMethod() {

        final MockHttpServletRequest request = new MockHttpServletRequest("post", "/...");
        request.setParameter("firstName", "Joe");
        request.setParameter("lastName", "Smith");

        final User user = new User();
        final WebDataBinder binder = new WebDataBinder(user, "user");
        binder.bind(new MutablePropertyValues(request.getParameterMap()));

        final ModelAndView mv = controllerTestInstance.submit(user, binder.getBindingResult());

        // Asserts...

    }