springspring 单元测试试怎么 断点测试

spring调试源码
[问题点数:20分]
spring调试源码
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年1月 Java大版内专家分月排行榜第二2015年12月 Java大版内专家分月排行榜第二2015年8月 Java大版内专家分月排行榜第二2015年3月 Java大版内专家分月排行榜第二2015年1月 Java大版内专家分月排行榜第二2014年12月 Java大版内专家分月排行榜第二2014年11月 Java大版内专家分月排行榜第二2014年6月 Java大版内专家分月排行榜第二2014年4月 Java大版内专家分月排行榜第二2014年1月 Java大版内专家分月排行榜第二2013年11月 Java大版内专家分月排行榜第二
2015年9月 Java大版内专家分月排行榜第三2015年6月 Java大版内专家分月排行榜第三2015年5月 Java大版内专家分月排行榜第三2015年2月 Java大版内专家分月排行榜第三2014年3月 Java大版内专家分月排行榜第三2013年12月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。使用JUnit在struts+spring+hibernate框架环境下进行单元测试 - 开源中国社区
当前访客身份:游客 [
当前位置:
过往使用的方式从最原始的IDE的DEBUG工具断点查错到目前还在用最快捷的使用文字输出(log或system.out)。& 这些调试方式不是说不好,但有些情况下达不到自己的需求,浪费了一些时间,因为在SSH的环境下修改的源码就意味着要部署。& 有个误区,有的人认为把ApplicationServer的热部署方式设置为ture,就不用部署了。其实实际还是重新部署了一遍,只是不需要你按键罢了。& 而且这样的后果还是你每保存一下就帮你部署一次,项目大的话花费很更多,我想也有不少人知道有个内存溢出的问题...挺头痛的..&
之前偶尔接触到JUnit,才领略到单元测试的精辟,记录一下学习心得。请别笑学得晚,最近也有个TestNG,有时间也继续研究下。学习调试程序也是一门学问啊。&
好啦,言归正传并且长话短说。&
使用JUnit进行单元测试方法,初步介绍。&
导入JUnit的包就不多说了,一般的IDE都集成的了。&
首先建议大家如果想使用Main静态方法来进行调试的话,请直接使用JUnit吧。使用方法很简单,如下:&
Java代码&&
其实这个是生命周期的标记,@Before为执行@Test方法之前先执行的,而@After就是执行完@Test之后执行,比较好理解。如果想不执行的话直接把标记注释掉即可,快捷简单。&
执行添加了@Test的方法也简单,由于我是使用MyEclipse的关系,这里以它来举例。其实跟执行Main方法差不多在运行里面选择JUnit调试的选项。快捷键:Alt+Shift+X,T,但我更喜欢在代码上面右键然后选择运行JUnit测试。
在传统的三层架构中进行单元测试&
DAO层和业务逻辑层的调试&
首先在@Before标记上执行获取需要调试的单元所使用的bean。&
具体例子如:&
Java代码&&
获取BeanFactory的方法有多种,这里比较推荐使用这种方法。注意这里的applicationContext.xml是放在classPath之下,也推荐放在这里,比较好调试。&
view层的调试&
在我的应用中,view层使用的是struts1.29的技术,其实际上也没用到什么,仅仅作为servlet来使用罢了。而且struts的标记库也实在太啰嗦了,所以我前端使用的技术是AJAX+JSON+Struts.&
JavaScript就不用多说了,必定需要的了,而这里不推荐使用DWR框架,当然如果对JavaScript不熟的话也没办法了。总之还是王道的那句:使用什么技术还是取决与实际项目情况。&
说这些的原因是告诉大家,struts所用到的from、forward之类的我都没调试了,后续描述一下。&
首先想调试struts,使用到的技术是StrutsTestCase。具体地址http://sourceforge.net/projects/strutstestcase/&
需要记住的是,StrutsTestCase是Junit TestCase类的扩展。&
使用方法,例子如下:&
首先把单元测试类继承servletunit.struts.MockStrutsTestCase&
然后模拟容器,具体请查看以下&
Java代码&&
注意setContextDirectory方法,默认情况下setUp()方法会在classPath下找web.xml和struts-config.xml等配置文件,所以可能会遇到找不到的情况。&
使用setContextDirectory并且设置File为&WebRoot&的话,告诉程序在WebRoot下找配置文件,在SSH通常情况下都适用。&
准备功夫做好了就可以尽情的进行测试了,并不用担心修改代码后需要重新部署项目了。&
这里注意的时,在继承了MockStrutsTestCase的子类当中,所有以test开头的方法都自动执行调试程序,不再需要@Test标记。这里有保留意见,双利刃吧,还是喜欢用标记进行测试。&
例子如下:&
Java代码&&
当然JUnit没这么简单,但我使用到的这些足够了,其他的还可以使用断言(assert)来辅助大家调试。给大家举一些例子,当中都为网上整理出来。&
主要函数和作用&
setRequestPathInfo,设置request的请求&
addRequestParameter,将参数和对应的值加入request中&
actionPerform,执行这个请求&
verifyForward,验证forward的名字是否正确&
verifyForwardPath,验证forward的path是否正确&
verifyNoActionErrors,验证在action执行过程中没有ActionError产生&
verifyActionErrors,验证在action执行过程中产生的ActionError集合的内容&
如果你action里面有setAttribute之类的方法,也想验证的话。&
也可以通过getSession()方法来获取session(request类似)。&
跟着再使用getAttribute进行assert就可以组合成自己需要的调试单元了。顺便列举一下assert方法。&
assertEquals(), assertNull(), assertSame(), assertTrue(),assertArrayEquals()等..&
无论如何,如果你不喜欢使用assert方法,直接输出一下也十分便捷。&
希望对大家学习有帮助。
原文链接:
共有0个评论
更多开发者职位上
有什么技术问题吗?
长平狐的其它问题
类似的话题502 Bad Gateway
502 Bad GatewayJava开源测试工具分类列表
Java开源测试工具
&&共3页『&&&&2&&&&』
&XTest&XTest是一个新的测试框架,它主要是为NetBeans IDE提供测试功能而开发的.但它也可以用于测试其它Java产品.XTest是基于Ant的,这就意味着它允许用户使用所有Ant的tasks. &UISpec4J&UISpec4J是专门用于Swing应用程序单元测试的一个开源组件,它构建在JUnit测试套件的基础之上.UISpec4J让Java GUI测试变得很简单.它的特殊之处在于它的APIs设计成尽可能地隐藏Swing的复杂性,因此易于测试脚本的读与写.以下这它的简单例子:&public void testContacts() {&&&&&&&&&Table contacts = getMainWindow().getTable();&&&&&&&&&&contacts.assertContentEquals(new Object[][]{&&&&&&&&&&&&&&{"John", "12", Boolean.FALSE},&&&&&&&&&&&&&&{"Sylvia", "43", Boolean.TRUE},&&&&&&&&&&&&&&{"Bill", "31", Boolean.FALSE}&&&&&&&&&&});&&} &iValidator&iValidator是一个基于XML的方案自动测试与复杂环境中集成测试的框架。它的特性包括:单元测试的可重复使用性,代码与数据分离,提供Eclipse插件,支持所有测试levels等。 &Jeté&Jeté是一个系统集成测试框架。它让系统测试变得更容易并且采用非常易于理解与足够灵活的方式来测试现存的系统。这是因为Jeté:&- 基于XML(上下文文件)的系统测试定义文件,一个系统测试的定义是由在这些文件中定义的几个action和对每一个action定义的几个validators所组成。由于使用Spring context文件作为测试定义文件可把现存的POJOs无缝合线的结合到系统测试框架中;&- 扩展了 ,和的基本功能来使用已知的测试概念。&- 集成了JUnit、提供测试状态的图形化报告。 &MockCentral&MockCentral提供一种利用mock对象进行测试的新方式。它把mock对象定义在测试代码之外的XML文件中并允许开发人员创建,访问这些mock对象,这能够让测试案例变得简洁并有利于组织和复用mock对象。 &STclass&STclass是一个基于Contract(由于B. Meyer在Design by Contract:合约设计方式中定义)的单元测试框架,它是JUnit的一个克隆,但是可与JUnit相匹敌。该框架能够把测试结果生成XML的报表格式,然后加工处理成漂亮的HTML报表。STclass集成JIP剖析器,可以在测试期间进行statisitic与 profiling分析,并把结果加到HTML报表中。 &SpringUnit&SpringUnit用于Java软件单元和综合测试的开源框架。它把Spring的依赖注入容器与JUnit的测试框架相结合来实现数据驱动测试。 &lattu&lattu是一个用于测试Eclipse RCP应用程序的框架。它能够进行单元测试与功能测试。实质上,它是一个Eclipse插件提供适当的扩展来进行单元与确认测试。lattu使用JUnit来实单元测试,Abbot来实现GUI测试。 &Unitils&Unitils这个Java开源类包的目的是让单元测试变得更加容易和可维护。Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合。支持数据库测试,支持利用mock对象进行测试并提供与Spring和Hibernate相集成。Unitils设计成以一种高度可配置和松散偶合的方式来添加这些服务到单元测试中。在进行数据库测试时能够:&
自动维护和强制关闭单元测试数据库(支持Oracle,Hsqldb,MySql,DB2),&
简化单元测试数据库连接的设置,&
简化利用DBUnit测试数据的插入,&
简化Hibernate session管理,&
自动测试与数据库相映射的Hibernate映射对象。在利用Mock对象进行测试时能够:&
简化EasyMock mock对象创建,&
简化mock对象注入,利用反射等式匹配EasyMock参数。在与Spring集成时易于把spring管理的bean注入到单元测试中,支持在单元测试中使用一个用Spring配置的Hibernate SessionFactory。 &Ejb3Unit&Ejb3Unit用于在容器外对EJB3实体(Entity)和会话(Session)Bean进行自动测试。 Ejb3Unit是JUnit的一个扩展并能对所有JEE或EJB3项目自动执行独立junit测试。其脱离容器的方式能够缩短构建-测试周期,因为不需要容器部署。EJb3Unit默认使用一个内置的内存数据库,但也可以指定自己定义的数据库。 &p-unit&p-unit是一款开放源码的性能测试框架,和JUnit不同,JUnit 关注的是测试案例的正确性,而p-unit不仅关注测试案例的正确性,还收集测试案例的性能参数,默认情况下,p-unit收集测试案例的时间和内存消耗情况,可以产生文件,图片,和PDF格式的报表。此外,p-unit 还支持参数化测试,多线程测试以及不同Java 虚拟机性能之间的比较。 &JEasyTest &JEasyTest是一个Eclipse IDE插件开发用于简化那些难于用标准mock object框架进行单元测试的代码,比如使用继承关系的代码。 &FEST-Swing&FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互(鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。支持在HTML测试报告中嵌入GUI测试失败的截屏。能够与JUnit或TestNG一起使用。
&Jacareto&Jacareto是一个动作捕捉与回放工具。你可以利用它来捕捉应用程序中的动作并在过后回放它们(就像macros)。Jacareto可以用于GUI测试,创建生动的操作示范和用户操作行为分析。 &Ripplet&Ripplet是一个强大,高可靠性,灵活的负载/压力测试工具。它提供的功能包括:支持图解测试设计并能够清楚的概括负载描述。能够有效地控制实际可行的性能负载包括逻辑与数据流。能够轻松地诊断出性能峰值与瓶颈。能够快速、正确地评估系统的实际抗压能力。能够让开发人员制定用于测试产品在实际运行环境下执行情况的测试计划并生成测试报告。 &Feed4JUnit&Feed4JUnit能够让编写JUnit的参数化测试变得简便,并为这些测试提供预定义或随机测试数据。它能够从业务分析人员定义好的CVS或Excel文件读取测试用例数据并在构建/单元测试框架中报告测试成功。利用Feed4JUnit能够很方便用随机但校验过的数据执行冒烟测试来提高代码代码覆盖率和发现由非常特殊的数据结构产生的Bug。此外还可以利用Feed4JUnit轻松定义等价类测试。 &Thread Weaver&Thread Weaver是一个用于编写多线程单元测试的Java框架。它提供一种机制用于创建在代码中创建断点,当到达断点时将终止一个线程的执行。而其它线程还可以继续运行当第一个被阻塞时,这让你可以编写可重复的测试来检查竞争件和线程安全。 &Maveryx&Mavery是一个开源的自动化测试工具用于Java GUI应用程序功能和回测试。通过一个智能的GUI对像查找器能够在运行期直接确定要测试的GUI对象,利用这点Maveryx能够消除GUI Map间的依赖。此功能用于自动识别和管理正在测试中应用程序的变化与缺陷,同时确保测试案例无需修改就能够运行成功。Maveryx可以集成在任意Java IDE中使用包括:Eclipse、NetBeansIBM Rational Functional Tester等等。 &loadUI&loadUI是一个企业级的负载测试工具,测试可分布式运行并可实时修改,与soapUI紧密集成,使用高度图形化界面,使得测试变得很简单而且运行迅速。 &Robot Framework&Robot Framework是一个通用关键字驱动自动化测试框架用于验收测试和验收测试驱动的开发(ATDD)。它拥有一个易于使用表格式的语法来创建测试用例并且它的测试能力可以通过测试库进行扩展(测试库可以用Python或Java实现)。用户还可以使用与创建测试用例一样简单的语法依据现有关键字创建新的关键字。 &Awaitility&Awaitility是一个基于Java的DSL类库用于同步异步操作。它可以方便地测试异步代码。
&SWTBot&SWTBot是一个开源基于Java的UI/功能测试工具用于测试基于SWT和Eclipse的应用程序。SWTBot提供的API具有易于学习和使用的特点。其API隐藏了SWT和Eclipse的复杂性。因此非开发人员也可以利用它进行UI/功能测试。SWTBot提供了一组自己的断言(assertions)非常适合于SWT,SWTBot允许你使用自己的断言框架。SWTBot还可以记录和回放测试并与Eclipse集成使用。
&ScalaTest&ScalaTest是一个开源测试框架,既可以测试Scala也可以测试Java代码。通过与一些流行的工具集成使用如:JUnit、TestNG、Ant和Maven,ScalaTest能够让你的测试在新的或现有的Scala或Java项目中变得更加高效。
&Citrus&Citrus是一个采用Java开发的测试框架。它为企业SOA应用程序和消息解决方案提供完全自动化的集成测试。Citrus能够利用各种传输协议轻松模拟各集成组件的接口。
&JCrawler&JCrawler是一个开源的Web应用压力测试工具。通过其名字,你就可以知道这是一个用Java写的像网页爬虫一样的工具。只要你给其几个URL,它就可以开始爬过去了,它用一种特殊的方式来产生你Web应用的负载。这个工具可以用来测试搜索引擎对你站点产生的负载。当然,其还有另一功能,你可以建立你的网站地图和再点击一下,将自动提交Sitemap给前5名的搜索引擎!
&JTester&JTester是一个非常优秀的单元测试框架,主要的特性有以下内容:&&1、在unitils的基础,集成了jmock功能。 &&2、在hamcrest断言的基础上,实现了fluent interface断言。 &&3、改造了jmock expectation参数断言为fluent interface形式 &&4、提供了将普通的pojo对象序列化到文件,然后再从文件中反序列化回来的功能,用于在对象复杂的情况下,直接录制接口(远程接口)调用返回的对象,以供下次测试或调试使用。 &&5、使用wiki代替xml来准备测试数据。 &&6、实现了更加丰富的断言。 &&7、提供了hibernate annotation环境下,直接使用内存数据库进行db测试。 &&8、提供了hibernate annotation环境下,Open Test in Session的实现。 熟悉Java单元测试的同学应该能体会到对Java程序如果只是单纯的使用Junit或是TestNG这样的基础单元测试框架往往很难应对各种复杂的单元测试情况,所以势必要借助很多第三方的框架和技术(easymock,jmock,dbunit等等)。而这些框架和技术的学习又会增加学习的成本和难度,所以有人在这些java基础单元测试的工具基础上开发一些测试框架(如unitils)将多种Java单元测试技术整合在一起,提高开发效率。 JTester的目的也是一样,在作者精心的开发和维护的基础上,已经拥有了强大的功能和稳定的质量。
&JBehave&JBehave是一个用于行为驱动开发(BDD:Behaviour-Driven Development)的框架。行为驱动开发(BDD)是测试驱动开发(TDD)和验收测试驱动设计的演变,目的是使这些做法更加方便和直观。
特性介绍:
支持Maven与Ant的集成;
支持IDE集成,支持以Junit的方式运行测试;
支持国际化,可以用不同的语言编写系统行为;
支持多种配置方式,Spring配置,基于Java的Annotation的配置,代码嵌入式配置;
&Spock&Spock是一个用于Java与Groovy应用程序的测试与规范框架。它的与众不同之处在于拥有漂亮与极富表现力的规范语言。由于Spock采用JUnit runner,所以能够与大部分IDE,构建工具和持续集成服务器集成使用。Spock灵感来自、、、、、。
&Podam&Podam这个工具能够帮助开发人员通过制造的数据自动填充Plain Old Java Objects (POJOs)来进行单元测试。
&Citrus Testframework&Citrus是一个采用Java开发的测试框架,能够对基于消息的企业SOA应用程序实现自动化集成测试。为了进行终端到终端的用例测试,这个工具能够模仿外围系统的各种传输器和协议(比如:JMS、SOAP WebServices、HTTP、TCP/IP等) 。Citrus为XML消息内容提供了强大的校验机制并且能够让你构建复杂的测试逻辑如:发送和接收消息,数据校验,自动重试,变量定义,动态消息内容,错误模拟等。
&&&共3页『&&&&2&&&&』
&&相关经验 ->
&&相关文档 ->
&&相关资讯 ->
&&相关代码 ->您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Java web项目中单元与集成测试.pdf19页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:150 &&
你可能关注的文档:
··········
··········
http://www.springframework.org/Spring 进行脚本的录制badboy 并结合,性能测试 web主要用作 http://jakarta.apache.org/jmeter/JMeter 工具的使用必不可少,Mock由于项目是分层分人开发的 http://www.easymock.org/EasyMock 进行的单元测试的好工具ActionStruts 针对大量的 http://sourceforge.net/projects/strutstestcase/StrutsTestCase 这里主要用来编译和执行单元测试,这个更加不用说了 http://ant.apache.org/Ant 单元测试的开山之作,Java这个不用说了 http://www.junit.org/index.htmJUnit 在这里的单元测试过程中我们使用了如下的辅助工具.找发现它们
就是要花点时间去寻,项目的一大好处就是有许多方便快捷的框架和工具可供选择使用Java 必先利其器,,工欲善其事..11 , .1 , .1 .效果感觉不错,进行持续集成并生成测试覆盖率的报告 CruiseControl 并结合了.久层
持后来逐步扩展到演示层和,进行测试ClassBusiness对业务层的JUnit 最初只是用,项目Web
aJav为框架扩展起来的一个Struts+Spring+iBatis这个项目是以 ,以几年前做的一个项目为例
处提高代码质量的好bug,regression确实也收获了降低,在付出时间与精力写单元测试的同时
.测试驱动开发随着这两年极限编程的推广也逐渐流行起来,单元测试的重要性早已深入人心 ononWalterWalter onWalter onWalter 项目中单元与集成测试webwebJavaJava webJava webJava moc.gnitset15.www//:ptth 使用它的BeanFactory和相关的测试辅助类
Emma http://emma.sourceforge.net/ 测试覆盖率工具,以生成测试覆盖率报告
CruiseControl http://cruisecontrol.sourceforge.net/ 持续集成工具
22..单元测试在各个层次中的应用 首先建立一个与源代码目录结构相同的Test目录,以放置测试类 然后编辑ant的build文件,添加如下
正在加载中,请稍后...}

我要回帖

更多关于 spring mvc 单元测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信