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