首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Maven治理的Spring Web项目集成JUnit单元测试

2013-10-25 
Maven管理的Spring Web项目集成JUnit单元测试JUnit是一套优秀的单元测试框架,而Maven是优秀的Java项目构建

Maven管理的Spring Web项目集成JUnit单元测试

        JUnit是一套优秀的单元测试框架,而Maven是优秀的Java项目构建和管理工具,两者结合可以很方便地对项目进行自动化测试。

        一般的简单Java应用就不多说了,一些框架会提供针对junit的扩展,使得测试变得更容易,例如Spring官方就提供了spring-test,用于提供获取ApplicationContext等方面的支持。

        首先要做的是,改变JUnit的实际执行类,将默认的执行类Suite替换为Spring提供的SpringJUnit4ClassRunner,也就是在测试类前面加上一个注解:

        InputStream is = null;        if(null != context){            is= context.getResourceAsStream("/WEB-INF/configs/command-sender.xml");        }else{//JUnit Test环境下,使用ApplicationContext获取配置文件            //NearEast 2013-10-22            try {                is= SpringContextHolder.getApplicationContext().                        getResource("file:src/main/webapp/WEB-INF/configs/command-sender.xml").getInputStream();            }catch(IOException e) {                e.printStackTrace();            }        }

        其中,SpringContextHolder是笔者在《在Java Web应用中获取Spring管理的Bean的方法》提到的一个工具类,SpringContextHolder.getApplicationContext()即获得Spring的ApplicationContext。资源的路径使用了上文提到的完全限定路径,我们也可以将其写为类似“file:E:/Workspaces/workspace_test/test/src/main/webapp/WEB-INF/configs/command-sender.xml"”的形式。经过上述修改之后,我们的业务类也可以直接利用JUnit执行测试了。

        当然我们还可以用其它方式获取ApplicationContext,例如让业务类实现ApplicationContextAware接口,并使用一个变量保存ApplicationContext。


2楼FansUnion57分钟前
可以看看我写的这个。nhttp://blog.csdn.net/fansunion/article/details/12147611n单元测试Struts2Spring项目的Action和Service(包含源码)
1楼FansUnion1小时前
顶一顶。n有没有单元测试 Action/Controller和Service的例子呢...n我到时候写这个的。。。
Re: NearEast1小时前
回复FansUnionn好荣幸啊,被大神顶了~前段时间在某Q群里支持过你共享的中国象棋,哈哈~nService可以直接测试的,Action涉及到HttpServletRequest等,需要模拟web容器支持的,大神有兴趣可以写一写哦,期待中~
Re: FansUnion1小时前
回复NearEastn2楼的那个源码有 测试Struts的Action的。nn测试SpringMVC Controller的还没有发表呢。n看看我刚刚发表的 下载资源列表吧。nhttp://blog.csdn.net/fansunion/article/details/13015503n你是搞Java的吧,很多内容你都用得着。n我持续更新中...
Re: NearEast1小时前
回复FansUnionn2楼那篇文章看了,没有看到设置request的内容,不过那个倒是好说~ 谢大神分享的资源列表!

热点排行