Тестирование метода пружинного контроллера, имеющего в качестве параметра @ModelAttribute - PullRequest
1 голос
/ 25 августа 2011

Я пытаюсь проверить контроллер с помощью этого метода:

@ RequestMapping (value = "/ test")
public ModelAndView generateRecords (@ModelAttribute ("Employee") Employee employee) {

И я хотел бы знать, как я могу создать модульное тестирование для тестирования этого.В настоящее время я использую:

MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/test");
//request.setMethod("GET");
new AnnotationMethodHandlerAdapter().handle(request, 
        new MockHttpServletResponse(), this.controller);

Выполнение этого результата теста со значением NULL для ModelAttribute (Employee)

Есть ли способ передать объект modelattribute в контроллер при проведении интеграционного тестирования ??

Спасибо


Просто подведу итог:

Решение этой проблемы - выбрать имена элементов html, заполнить значения параметров в объекте MockHttpRequest и передать егоболее.

Пример:

MockHttpServletRequest httpServletRequest = MockRequestResponseGenerator.mockRequest(getServletInstance().getServletContext(), "POST", "/test", paramters);

//These paramters must be part of the ModelAttribute Object. Make sure, you are using custom property binding in case you have different object.

        httpServletRequest.setParameter("name", "SPRING MVC INTEGRATION TEST 
TEMP");
        httpServletRequest.setParameter("id", "1");
        httpServletRequest.setParameter("desc", "SPRING MVC INTEGRATION TEST DESC");


        getServletInstance().service(httpServletRequest, httpServletResponse);

1 Ответ

1 голос
/ 25 августа 2011

Вы можете установить значения в запросе в качестве параметров, следуя путям OGNL, соответствующим путям атрибута / формы модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...