1
我试图测试用这种方法的控制装置的弹簧控制器的方法:测试具有@ModelAttribute作为参数
@RequestMapping(值=“/测试”)
公共的ModelAndView generateRecords(@ModelAttribute(“雇员” )员工雇员){
我想知道如何创建一个单元测试来测试这个。目前我使用:
MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/test");
//request.setMethod("GET");
new AnnotationMethodHandlerAdapter().handle(request,
new MockHttpServletResponse(), this.controller);
运行中NULL值的ModelAttribute(员工)该测试结果
有没有办法做集成测试时传递的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);
谢谢Teja,它工作!干杯:) – Raj
好听...接受答案,如果它有助于解决您的问题,以便其他用户知道... –
如果员工有例如类型公司的成员“公司” ,比方说,名称和说明字段)?你如何表达通往company.name和company.description的路径? – Rolf