论坛首页 入门技术论坛

Junit源码总结

浏览 4252 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-09-18   最后修改:2010-09-20

 

Junit的底层代码主要是由观察者模式,组合模式,模板模式,命令模式 来实现的。



在Junit里首先会初始化一个主题对象testResult对象,这个对象里面有增加监听器的方法,所有的监听器方法都实现了

 

testListener接口,这个接口会把一系统测试过程的信息传递给所有的监听器,然后监听器会按照它们的方式显示给用

 

户,在这里就用到了观察者模式 ,观察者模式就是定义对象间的一种一对多的依赖关系,解决多个对象间相互依赖关系的相

 

互通知。我们是让多个观察者对象同时监听某一个主题对象。testResult就是一个被观察者,testListener就是一个观察

 

者接口,只要testResult发生了变化,那么所有实现testListener接口的监听器全都会得到响应并作出相应的变化。我们

 

增加一个监听器也是非常的简单,直接实现testListener接口就行了,扩展性非常的强。

 

 

然后通过Test接口多态生成一个testSuite对象,在这里它用到了组合模式 ,组合模式就是将对象以树形结构组织起来,以

 

达到“部分与整体”的层次结构,使客户使用单个对象和组合对象的具有一致性。TestSuite相当于树形结构的树枝,而所有测

 

试类的父类TestCase就相当于树叶。当我们执行TestSuite里的run方法的时候,它会遍历这个集合,调用每个

 

TestCase对象里的run方法对所有的测试类进行测试。

 

 

在Junit里,TestCase在执行测试之前和测试之后都要进行一些处理。如我们在测试之前要调用setUp进行一些初始化,

 

比如说数据库连接等。在测试完以后要调用teardown方法进行一些清理工作,如释放数据库连接等。Junit它在这里用到

 

模板模式 ,模板模式就是父类定义流程,子类定义实现。Junit它就提供setUp和teardown方法,在每次测试之前和之后

 

调用。这样我们测试就省去了不少的重复代码。

 


最后就是运行Junit。它在这里用到命令模式 ,命令模式就是把一个对象的行为封装成了一个对象,这样我们就不用去关心

 

实现这个行为的具体细节了。在Junit源码中,运行Junit直接执行Test接口的run方法就可以了,我们不用去关心它内部是

 

怎么实现的了。

 

看完之后,还请各位前辈们为小弟指点指点!!!

 

 

   发表时间:2010-09-20  
总结得不错,什么时候我也去看一下。
0 请登录后投票
   发表时间:2010-09-20  
讲的太笼统了,当然那是你自己的总结。
0 请登录后投票
   发表时间:2010-09-20   最后修改:2010-09-20
见图片附件
  • 大小: 159 KB
0 请登录后投票
   发表时间:2010-09-20   最后修改:2010-09-20
kingwood2005 写道
讲的太笼统了,当然那是你自己的总结。

恩,我只是从设计模式上说了一下Junit源码,如果要详细的说明,那就得把源代码也贴上来了。
0 请登录后投票
   发表时间:2010-09-21   最后修改:2010-09-21
LZ讲的不错,但是太笼统了,建议详细一点。

为什么是那四种模式啊?讲一讲模式吧!
0 请登录后投票
   发表时间:2010-09-21  
最好模式结合相应代码,这样更便于理解
0 请登录后投票
   发表时间:2011-03-28  
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics