锁定老帖子 主题:Junit源码总结
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-18
最后修改:2010-09-20
Junit的底层代码主要是由观察者模式,组合模式,模板模式,命令模式 来实现的。
testListener接口,这个接口会把一系统测试过程的信息传递给所有的监听器,然后监听器会按照它们的方式显示给用
户,在这里就用到了观察者模式 ,观察者模式就是定义对象间的一种一对多的依赖关系,解决多个对象间相互依赖关系的相
互通知。我们是让多个观察者对象同时监听某一个主题对象。testResult就是一个被观察者,testListener就是一个观察
者接口,只要testResult发生了变化,那么所有实现testListener接口的监听器全都会得到响应并作出相应的变化。我们
增加一个监听器也是非常的简单,直接实现testListener接口就行了,扩展性非常的强。
然后通过Test接口多态生成一个testSuite对象,在这里它用到了组合模式 ,组合模式就是将对象以树形结构组织起来,以
达到“部分与整体”的层次结构,使客户使用单个对象和组合对象的具有一致性。TestSuite相当于树形结构的树枝,而所有测
试类的父类TestCase就相当于树叶。当我们执行TestSuite里的run方法的时候,它会遍历这个集合,调用每个
TestCase对象里的run方法对所有的测试类进行测试。
在Junit里,TestCase在执行测试之前和测试之后都要进行一些处理。如我们在测试之前要调用setUp进行一些初始化,
比如说数据库连接等。在测试完以后要调用teardown方法进行一些清理工作,如释放数据库连接等。Junit它在这里用到
模板模式 ,模板模式就是父类定义流程,子类定义实现。Junit它就提供setUp和teardown方法,在每次测试之前和之后
调用。这样我们测试就省去了不少的重复代码。
实现这个行为的具体细节了。在Junit源码中,运行Junit直接执行Test接口的run方法就可以了,我们不用去关心它内部是
怎么实现的了。
看完之后,还请各位前辈们为小弟指点指点!!!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-09-20
总结得不错,什么时候我也去看一下。
|
|
返回顶楼 | |
发表时间:2010-09-20
讲的太笼统了,当然那是你自己的总结。
|
|
返回顶楼 | |
发表时间:2010-09-20
最后修改:2010-09-20
见图片附件
|
|
返回顶楼 | |
发表时间:2010-09-20
最后修改:2010-09-20
kingwood2005 写道 讲的太笼统了,当然那是你自己的总结。
恩,我只是从设计模式上说了一下Junit源码,如果要详细的说明,那就得把源代码也贴上来了。 |
|
返回顶楼 | |
发表时间:2010-09-21
最后修改:2010-09-21
LZ讲的不错,但是太笼统了,建议详细一点。
为什么是那四种模式啊?讲一讲模式吧! |
|
返回顶楼 | |
发表时间:2010-09-21
最好模式结合相应代码,这样更便于理解
|
|
返回顶楼 | |
发表时间:2011-03-28
|
|
返回顶楼 | |
浏览 4252 次