Spring MVC 的单元测试实例

一、先定义实例:

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); 
	}

  三、个人认为实用性不强。

你可能感兴趣的:(spring mvc)