Junit学习总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Junit学习总结.doc

Junit的源码分析 内容简介: Junit源码分析主要是针对前一阶段学习和研究junit源码的思想总结,包括junit3.0和junit4.X.这个分析将从我认识junit的时间顺序,加上我现阶段对架构思维的理解出发,阐述junit的设计模式. 首先会介绍我对架构的理解,全文将以这个理解为中心,以junit为示例展开;之后会介绍我对junit3的主要设计模式的剖析,并附有一定的源码和我自己的注释;在讲述junit4时,我会用它与junit3进行比较,从比较中理解junit的设计模式,为今后自己设计软件架构提供依据. 当然junit毕竟还是有一定难度的,要想看懂这个源码分析,我个人认为至少应该具有以下几个方面的准备: Java基础语法尤其是java反射; 工厂方法模式,组合模式,观察者模式,模板方法模式,命令模式,适配器模式,装饰者模式...等,这些模式的示例代码,至少能看得懂. Java的annotation 尤其是自定义的annotation要会使用. 还有一个就是你的用过它. 自我对框架的认识 我个人认为,所谓的架构,是由三个部分组成.他们分别是入口,容器,和出口.在我所见到的四种架构中都是这样的,不同的是有些是单向,而有些则是双向信息流通.至于所谓的设计模式,就是在信息进入的时候根据系统的侧重点进行分类和筛选,再出口进行包装后打包输出.所以读懂一个源码,首先就得搞懂他的出入口,和容器所在,以及他们分别运用的设计模式,当然这种设计模式一定不是唯一的,而是根据性能的需求而确定的.至于什么时候选什么模式,我觉得这就是经验问题了. 以junit3为例,它的重点是要解决信息分类,对输入的类对象运行的结果进行分类输出,所以Junit把错误分为了失败和错误,并用断言进行了严格界定.而对错误的捕捉和收集,junit采用的是观察者模式,这一模式将贯穿junit3和junit4.同时它使用了组合模式作为容器,用命令模式作为消息的入口....具体我会在后面详尽阐述..... 同时我联想到了我最近正在写的报表引擎和报表插件.就插件而言,他的入口时XML文件,出后就是图形化表示.就这个插件而言,出入口是双向的,也就是图形化可以转化为XML文档,XML文档可以转化为对应的图形化显示.有点类似DW.所以容器部分用了中介者模式管理Map.图形化端我用的是工厂方法,根据消息创建自己的图形,而XML段,我用的是门面模式.按照XML的格式和顺序要求输出消息 因此我个人认为,认识软件,可以从入口,容器和出口三大块入手,体味他人的设计思路,点评其中的优劣,从而为自己写软件奠定基础. Junit3 ---从运行流程到设计模式 俗话说一图胜千言,由于表达能力有限,再加上,UML要考试了,为了复习一下所学知识,就顺便用了一下过程图.来描绘Junit3的运行过程,途中TestCase表示一个一个以test开头的TestCase实例,为Class对象 通观整个junit3,我个人认为它是一个典型的composite模式.TestSuit可以容纳所有实现了Test接口的实例,这就是我所谓的容器.而这个容器会通过run()方法来遍历Test的集合,并调用他们的run方法,从而实现测试..为了说清楚,TestSuit如何运用composite模式创建TestCase的容器的,我觉得你可以看一下,下面的类图: (由于技术问题画的确实不好,如果对组合模式不熟悉,可以先看组合模式的代码示例代码,在跟Junit源码对比) 由于屏幕问题,把一个构造方法分成了两部分.至于作用:除了图片上的注释意外,还有一点,就是测试用例被转换为testcase后,放在VECTOR中,最后TestSuite对象,另外,TestSuite还提供了一个addTestSuite方法,用来递归构建TestSuite对象,最终可以形成一颗树 此时对于junit3 来说,他所执行的统一入口时Test的run方法,而TestSuit也实现了Test 接口,TestSuit的run方法代码如下: 注释:图中的TestCase是以testXXX开头的test方法通过继承而得到的TestCase对象,从构造方法中可以看出一个方法就是一个TestCase实例. 至于在TestCase中,调用run方法,在这个run方法中Junit3会调用传进来的result的run方法.而Result的run方法利用的是观察者模式,添加监听.... 1

文档评论(0)

shaoyifen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档