тестирование контроллеров SpringMVC - PullRequest
0 голосов
/ 22 апреля 2010

Я тестирую мои контроллеры SpringMVC (v. 2.5), используя код, подобный следующему:

public void testParamValidation() {
    MyController controller = new MyController();
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.addParameter("foo", "bar");
    request.addParameter("bar", baz");
    ModelAndView mav = controller .handleRequest(request, new MockHttpServletResponse());
    // Do some assertions on mav
}

Этот контроллер является подклассом AbstractCommandController, поэтому параметры связаны с командойbean, и любые ошибки привязки или проверки сохраняются в объекте, который реализует интерфейс Errors.

Я не могу найти какой-либо способ доступа к этому Errors из теста, возможно ли это?

Спасибо, Дон

1 Ответ

1 голос
/ 22 апреля 2010

Чтобы проверить валидатор в моих контроллерах, я делаю что-то вроде следующего. В основном я использую BindException, чтобы получить доступ к ошибкам.

BindException ex = new BindException(commandObject, "commandName");
controller.onBindAndValidate(new MockHttpServletRequest(), commandObject, ex);
assertEquals(1, ex.getErrorCount());
List<ObjectError> errors = (List<ObjectError>)ex.getAllErrors();
assertEquals("INVALID_COMMAND", errors.get(0).getCode());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...