junit源碼探秘(一):準(zhǔn)備
1.1 題引
前幾天和朋友聊天,朋友說你作為自動(dòng)化測試?絲,居然沒有讀過Junit的源碼,實(shí)在是不應(yīng)。于是下定決心認(rèn)真研究一下Junit的源碼,通過學(xué)習(xí)Junit源碼,希望從中學(xué)到一些好的編程風(fēng)格和實(shí)現(xiàn)思路以及自動(dòng)化工具設(shè)計(jì)的思想。
JUnit是一個(gè)開源的java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發(fā)完成。這兩個(gè)牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(xiàn)。
JUnit設(shè)計(jì)的非常小巧,但是功能卻非常強(qiáng)大。主要有以下特性:
1) 提供的API可以讓你寫出測試結(jié)果明確的可重用單元測試用例
2) 提供了三種方式來顯示你的測試結(jié)果,而且還可以擴(kuò)展
3) 提供了單元測試用例成批運(yùn)行的功能
4) 超輕量級而且使用簡單,沒有商業(yè)性的欺騙和無用的向?qū)?/p>
5) 整個(gè)框架設(shè)計(jì)良好,易擴(kuò)展
本次學(xué)習(xí)Junit3.8作為例子進(jìn)行學(xué)習(xí)。
1.2 簡單Junit例子
首先用一個(gè)完整實(shí)例來說明 JUnit 的使用。由于本次的學(xué)習(xí)分析對象是 JUnit 的實(shí)現(xiàn)代碼(即源碼),因而Junit的使用不在深入討論中;整個(gè)學(xué)習(xí)調(diào)試跟蹤過程中,引用比較簡單的加減乘除運(yùn)算作為測試代來研究源碼。
被測試代碼類如下:
測試類代碼如下:
另外,為了深入研究源碼,在調(diào)試跟蹤過程中使用Junit Test和Java Application兩種方式交叉調(diào)試,所以在Junit源碼中加入運(yùn)行參數(shù),如下圖所示,主要以Junit默認(rèn)的文本運(yùn)行方式(即textui方式)