您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
測(cè)試實(shí)踐:Eclipse之JUnit
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/27 14:30:37 ] 推薦標(biāo)簽:

    都準(zhǔn)緒,開始建立測(cè)試了, 所以現(xiàn)在需要給測(cè)試取一個(gè)名稱。 你可能說(shuō),“這不是問題: 在每個(gè)類面前加個(gè)Test是了!” 但并不是那么簡(jiǎn)單的, 讓我告訴你這樣如果可能造成的問題:

    當(dāng)時(shí)候我們?cè)谑褂肨DD的方式開發(fā)時(shí), 需要測(cè)試的class或者method可能都不存在。

    也可能一個(gè)test 含蓋了好幾個(gè)方法,甚至好幾個(gè)classes。

    這些僅僅是普通的問題, 下面還有更多。

    給個(gè)在test命名上的建議: test 類的取名首先應(yīng)該表達(dá)出這個(gè)類是一個(gè)test類,并且能確切的表示出他要檢查哪些,留有這個(gè)原class名的味道。 其實(shí)這很容易,請(qǐng)別擔(dān)心這個(gè)名稱會(huì)變的很長(zhǎng)或者很丑陋,自己隨便怎樣取都可以。

    下面我們將使用Eclipse中的JUnit工具建立我們的第一個(gè)測(cè)試,假定你已經(jīng)下載了這個(gè)產(chǎn)品的當(dāng)前版本, 如果沒有,你隨時(shí)可以從它的官方網(wǎng)站(www.eclipse.org)下載。我們需要JUnit,你也可以從它的官方網(wǎng)站(www.junit.org)上下載,下載并解壓縮到你硬盤中存放java libaries的地方。

    打開Eclipse.我們將建立一個(gè)新的工程的工作空間(workplace project) 點(diǎn) File -> New ->Project,選擇Java一路Next。 輸入工程名稱(project name),比如ProjectWithJUnit. 點(diǎn)擊完成。 這樣建立了一個(gè)新工程,讓我們配置一下我們的Eclipse,于是,我們把JUnit library 添加到build path. 點(diǎn)擊 Project-->Properties, 選擇Java Build Path Libraries, 點(diǎn)Add Exteranal JARs 選中JUnit.jar。 你將會(huì)看到JUnit將會(huì)出現(xiàn)在的屏幕上 libraries列表中。 點(diǎn)Okay,Eclipse將強(qiáng)制rebuild所有的build paths.

    我們已經(jīng)準(zhǔn)備好,開始寫我們的"Hello World"了 . 讓我們遵照TDD規(guī)范:在編碼之前建立測(cè)試。為了, 我們將假頂我們將要寫的類名是HelloWorld 有一個(gè)返回字符串的方法 say().

    要建立這樣一個(gè)test, 在ProjectWithJUnit標(biāo)題上右鍵, 選擇New -> Other,展開"Java", 選擇JUnit. 在對(duì)話框的右邊一攔里選擇TestCase,接著點(diǎn)Next. 參見圖1。

圖1。 在Eclipse 中建立JUnit test

    在Test class:一攔里輸入我們需要測(cè)試的class--HelloWorld。并且給Test case取個(gè)名稱--- 比如,TestThatWeGetHelloWorldPrompt(是的,這看上去太長(zhǎng)了,但是它能很清楚表達(dá)出它的意思) 點(diǎn)Finish完成。

    下面是 TestThatWeGetHelloWorldPrompt.java的代碼:

public class TestThatWeGetHelloWorldPrompt extends TestCase { public TestThatWeGetHelloWorldPrompt( String name) { super(name); } public void testSay() { HelloWorld hi = new HelloWorld(); assertEquals("Hello World!", hi.say()); } public static void main(String[] args) { junit.textui.TestRunner.run( TestThatWeGetHelloWorldPrompt.class); } }

    這個(gè)代碼一點(diǎn)都不復(fù)雜,僅僅有一點(diǎn)點(diǎn)特別。 不管怎樣,讓我們?cè)敿?xì)的檢查它。 我們繼承了JUnit的TestCase. (TestCase 在JUnit的javadoc里定義是"用來(lái)運(yùn)行多個(gè)Test的固定裝置")。 JUnit也定義了TestSuite 由于一組關(guān)聯(lián)的TestCase組成..

    通過以下兩步來(lái)建立我們簡(jiǎn)單的Test Case;

    建立Junit.framework.TestCase的實(shí)例.

    定義一些 以"test"開頭的測(cè)試函數(shù), 并且返回一空值.(比如 testWasTranscationSuccessful(),testShow()等等).

    TestThatWeGetHelloWorldPrompt.java 同時(shí)遵循這些標(biāo)準(zhǔn): 這些TestCase的子類含有一個(gè)testSay()的方法. 這個(gè)方法由assertEquals()方法調(diào)用, 用于檢驗(yàn)say()的返回值(按照這里的做法返回應(yīng)該是不一致,因?yàn)橐婚_始建立的HelloWorld 我們讓say()返回的值是null).

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd