Как проверить связующие / редакторы свойств, используемые на контроллерах Spring 2.5 - PullRequest
2 голосов
/ 23 февраля 2010

У меня есть аннотированный контроллер с методом, который ожидает модель и результат привязки

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

Как проверить результат привязки? Если я вызываю метод с пользователем и результатом привязки, то я не проверяю процесс привязки. Я полагаю, что может быть что-то, что берет MockHttpServletRequest и возвращает модель и результат привязки, какие-либо предложения?

Ответы [ 2 ]

4 голосов
/ 25 февраля 2010

Вы пытаетесь проверить привязку (что происходит до того, как будет вызван этот метод) или вы пытаетесь проверить метод обработчика "submit"?

Вы можете проверить привязку примерно так:

 @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...

    }
3 голосов
/ 06 сентября 2011

Вы, вероятно, найдете проект spring-test-mvc очень соответствующим тому, чего вы пытаетесь достичь. Сегодня этот проект пригоден для использования и в целом довольно прост, но на этом пути произойдут некоторые изменения, поэтому, если вам нужен стабильный API, это пока не для вас.

...