一、先定义实例:
public class BaseTest {
private static HandlerMapping handlerMapping;
private static HandlerAdapter handlerAdapter;
@BeforeClass
public static void setUp() {
String[] configs = {
"classpath:spring/spring-mvc-servlet.xml"
};
XmlWebApplicationContext context = new XmlWebApplicationContext();
context.setConfigLocations(configs);
MockServletContext msc = new MockServletContext();
context.setServletContext(msc);
context.refresh();
msc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,context);
handlerMapping = (HandlerMapping) context.getBean(RequestMappingHandlerMapping.class);
handlerAdapter = (HandlerAdapter) context.getBean(context.getBeanNamesForType(RequestMappingHandlerAdapter.class)[0]);
}
public ModelAndView excuteAction(HttpServletRequest request,HttpServletResponse response) throws Exception {
HandlerExecutionChain chain = handlerMapping.getHandler(request);
final ModelAndView model = handlerAdapter.handle(request, response,chain.getHandler());
return model;
}
}
二、单元测试方法:
@Test
public void test() throws Exception{
MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse();
request.setServletPath("/inputUserInfo");
//request.addParameter("id", "1002");
//request.addParameter("date", "2010-12-30");
request.setMethod("GET"); // "POST"
// 执行URI对应的action
final ModelAndView mav = this.excuteAction(request, response);
// Assert logic
Assert.assertEquals("view/inputUserInfo", mav.getViewName());
String msg=(String)request.getAttribute("msg");
//System.out.println(msg);
}
三、个人认为实用性不强。