springmvc单元测试


package test;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import org.junit.BeforeClass;   
import org.springframework.mock.web.MockServletContext;   
import org.springframework.web.context.WebApplicationContext;   
import org.springframework.web.context.support.XmlWebApplicationContext;   
import org.springframework.web.servlet.HandlerAdapter;   
import org.springframework.web.servlet.HandlerExecutionChain;   
import org.springframework.web.servlet.HandlerMapping;   
import org.springframework.web.servlet.ModelAndView;   
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;   
import org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping;   
/**   
* 说明: JUnit测试action时使用的基类  
*   
* @author  赵磊  
* @version 创建时间:2011-2-2 下午10:27:03    
*/    
public class JUnitActionBase {   
    private static HandlerMapping handlerMapping;   
    private static HandlerAdapter handlerAdapter;   
    /**  
     * 读取spring3 MVC配置文件  
     */  
    @BeforeClass  
 public static void setUp() {   
        if (handlerMapping == null) {   
            String[] configs = { "file:src/springConfig/springMVC.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(DefaultAnnotationHandlerMapping.class);   
            handlerAdapter = (HandlerAdapter) context.getBean(context.getBeanNamesForType(AnnotationMethodHandlerAdapter.class)[0]);      
        }   
    }   
  
    /**  
     * 执行request对象请求的action  
     *   
     * @param request  
     * @param response  
     * @return  
     * @throws Exception  
     */  
    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;   
    }   
}  
package test.com.app.user;  
import org.junit.Assert;  
import org.junit.Test;  
import org.springframework.mock.web.MockHttpServletRequest;  
import org.springframework.mock.web.MockHttpServletResponse;  
import org.springframework.web.servlet.ModelAndView;  
  
import test.JUnitActionBase;  
  
/**  
* 说明: 测试OrderAction的例子 
*  
* @author  赵磊  
* @version 创建时间:2011-2-2 下午10:26:55   
*/   
  
public class TestOrderAction extends JUnitActionBase {  
    @Test  
    public void testAdd() throws Exception {  
    MockHttpServletRequest request = new MockHttpServletRequest();  
        MockHttpServletResponse response = new MockHttpServletResponse();  
        request.setServletPath("/order/add");  
        request.addParameter("id", "1002");  
        request.addParameter("date", "2010-12-30");  
        request.setMethod("POST");  
        // 执行URI对应的action  
        final ModelAndView mav = this.excuteAction(request, response);  
        // Assert logic  
        Assert.assertEquals("order/add", mav.getViewName());  
        String msg=(String)request.getAttribute("msg");  
        System.out.println(msg);  
    }  
}  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值