一、在单元测试领域里,JUnit可以说是王者,它不但精致,而且使用方便。最后有些时间,把JUnit源码读读,顺便复习下设计模式 :)
二、参考文章
在深入看代码之前,先看下面的文章,对JUnit有一个基本的了解后,看代码会更有目的性。
JUnit官方网站:http://www.junit.org/
分析 JUnit 框架源代码: http://www.ibm.com/developerworks/cn/java/j-lo-junit-src/
JUnit A cook's tour: http://junit.sourceforge.net/doc/cookstour/cookstour.htm
三、核心架构
我分析的源码的版本是JUnit 3.8.2,这个版本相对简略,把核心思想表现出来了,没有4.X版本那么多附加的功能
JUnit是一个模式密集型的框架,主要用组合模式、模样方法、观察者模式、参数收集方法、命令模式、装饰者模式和适配器模式。其中核心是 前三种
核心类之间的关系
Test、TestCase和TestSuit构成了测试框架的基础,它们用composite模式组合在一起,使得客户端可以将对象的集合以及个别的对象(TestCase)一视同仁.TestRusult用来保存测试结果,和TestListner组成observer模式,支持文本界面、图形界面和 Eclipse 集成组件三种监听器
和JUnit A cook's tour中提到的模式图很相似
类与类之间的关系在此就不作解释了,可以看看参考文章。有兴趣的朋友,欢迎一起讨论 :)