一、在單元測試領域里,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中提到的模式圖很相似

類與類之間的關系在此就不作解釋了,可以看看參考文章。有興趣的朋友,歡迎一起討論 :)