怎么给Spring3 MVC中的Action做JUnit单元测试
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关怎么给Spring3 MVC中的Action做JUnit单元测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用了spring3 MVC后,给a
千家信息网最后更新 2026年11月02日怎么给Spring3 MVC中的Action做JUnit单元测试
这篇文章给大家分享的是有关怎么给Spring3 MVC中的Action做JUnit单元测试的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
使用了spring3 MVC后,给action做单元测试也很方便,我以前从来不给action写单元测试的,再在不同了,方便了,所以一定要写。
JUnitActionBase类是所有JUnit的测试类的父类
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; } }更多关系Spring的信息
Spring 论坛 http://www.itchm.com/forum-59-1.html
这是个JUnit测试类,我们可以new Request对象,来参与测试,太方便了。给request指定访问的URL,就可以请求目标Action了。
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.setRequestURI("/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); } }需要说明一下 :由于当前最想版本的Spring(Test) 3.0.5还不支持@ContextConfiguration的注解式context file注入,所以还需要写个setUp处理下,否则类似于Tiles的加载过程会有错误,因为没有ServletContext。3.1的版本应该有更好的解决方案。
感谢各位的阅读!关于"怎么给Spring3 MVC中的Action做JUnit单元测试"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
测试
单元
更多
内容
对象
时间
版本
篇文章
赵磊
不同
不错
实用
例子
信息
文件
文章
方案
注解
目标
看吧
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技巨头监管
朗新科技与工业互联网
期待互联网科技
互联网与新科技
致聘互联网科技
苏州互联网科技贷款公司
智慧科技互联网
互联网科技论坛
互联网科技汛
互联网科技公司需要的职位
受益于互联网科技的高速发展
宝灵互联网科技有限公司
和信科技工业互联网
苏州铭阳互联网科技有限公司
中国互联网公司排名锤子科技
明优互联网科技有限公司
怎样加入科技互联网
互联网科技创新方面的资料
科技美学互联网 艺术
中国主要互联网科技公司
咖啡网
科技互联网技术
互联网科技与金融科技
亿账通互联网科技
互联网公司会议桌创意科技软装饰
湖南洣水互联网科技有限公司扣款
互联网和高科技公司
工业互联网等科技实现智能化赋能
智帮互联网科技公司最近动向
万物互联网智能科技