您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
Eclipse學(xué)習(xí)-用JUnit進(jìn)行單元測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/21 16:06:19 ] 推薦標(biāo)簽:

JUnit是與Eclipse一起提供的一個(gè)開源測(cè)試框架。在同一個(gè)Project中,可以創(chuàng)建與其它c(diǎn)lass無異的“基于JUnit”的class,并使用此JUnit代碼去測(cè)試project中的其它c(diǎn)lass。JUnit的此種使用方式能夠?yàn)槊课辉诖藨?yīng)用程序上工作的人員構(gòu)建一組標(biāo)準(zhǔn)的測(cè)試。如果當(dāng)更改了應(yīng)用程序代碼以后,他們所需做的工作僅僅是點(diǎn)擊幾下按鈕來驗(yàn)證此應(yīng)用程序是否依然能夠通過標(biāo)準(zhǔn)測(cè)試。

JUnit被用來測(cè)試代碼,并且它是由能夠測(cè)試不同條件的斷言方法(assertion method)組成,如下所示:

assertEquals(a, b)

測(cè)試a是否等于b(a和b是原始類型數(shù)值(primitive value)或者必須為實(shí)現(xiàn)比較而具有equal方法)

assertFalse(a)

測(cè)試a是否為false(假),a是一個(gè)Boolean數(shù)值。

assertNotNull(a)

測(cè)試a是否非空,a是一個(gè)對(duì)象或者null。

assertNotSame(a, b)

測(cè)試a和b是否沒有都引用同一個(gè)對(duì)象。

assertNull(a)

測(cè)試a是否為null,a是一個(gè)對(duì)象或者null。

assertSame(a, b) 

測(cè)試a和b是否都引用同一個(gè)對(duì)象。

assertTrue(a)

測(cè)試a是否為true(真),a是一個(gè)Boolean數(shù)值。

我們使用這些方法來構(gòu)建JUnit測(cè)試。當(dāng)運(yùn)行一個(gè)JUnit應(yīng)用程序時(shí),它打開自己的視圖(view)來立即指示哪個(gè)測(cè)試通過了,哪個(gè)測(cè)試失敗了。

創(chuàng)建測(cè)試應(yīng)用程序

我們將在一個(gè)例子中使用JUnit來展示它如何在我們創(chuàng)建的應(yīng)用程序JN_test中運(yùn)行。此應(yīng)用程序的意圖是簡單地為一個(gè)整型數(shù)組賦值,并通過get和set方法來對(duì)它們進(jìn)行存取。

特別地,我們將包含三個(gè)方法,它們用來返回可能被用在JUnit中測(cè)試的值。

allocate

分配一個(gè)整型數(shù)組并且對(duì)其賦值;返回新分配的數(shù)組。

set

為整型數(shù)組賦值;如果成功返回true,否則返回false。

get

從整型數(shù)組中取值;返回需要的數(shù)值。

JN_test的初版本:

package net.csdn.blog;

public class JN_test {

    private int[] array;

    public int[] allocate()

    {

        array[0] = 0;

        array[1] = 1;

        array[2] = 2;

        return array;

    }

    public int get(int index){

        return array[index];

    }

    public boolean set(int index,int value){

        if(index<array.length && index >=0)

      {

            array[index] = value;

            return true;

        }

        else

            return false;

    }

}

allocate方法分配一個(gè)整型數(shù)組,對(duì)其進(jìn)行賦值,并返回此數(shù)組:

private int[] array;

public int[] allocate( ) {

       array[0]=0;

       array[1]=1;

       array[2]=2;

       return array;

}

get方法在數(shù)組的給定位置取整數(shù)值:

public int get(int index) {

        return array[index];

}

set方法為給定的位置賦整數(shù)值,按條件返回true或者false。

public boolean set(int index, int value) {

        if (index < array.length && index >= 0) {

        array[index]=value;

        return true;

        } else {

                return false;

        }

}

接下來是使用JUnit測(cè)試所有這些方法:allocate , set和get。

安裝JUnit
為了使用JUnit(更多細(xì)節(jié)請(qǐng)參考http://www.junit.org ),必須在project的classpath中添加junit.jar。因此,建立一個(gè)新的classpath變量JUNIT。選擇Window->Preferences菜單欄打開Preferences對(duì)話框,展開Java結(jié)點(diǎn),選擇Build Path->Classpath Variables項(xiàng)。

然后點(diǎn)擊New按鈕打開New Variable Entry菜單,輸入新的變量名:JUNIT,設(shè)置路徑為junit.jar.在Eclipse3.0.2中,能夠在eclipse/plugins/org.junit_3.8.1/junit.jar下找到j(luò)unit.jar。

然后點(diǎn)擊OK。

為了debug的需要,也要添加JUnit包的源代碼(這是一個(gè)可選步驟;在此例子中我們不使用JUnit源代碼)。你將在eclipsepluginsorg.eclipse.jdt.source_3.0.2 rc目錄中發(fā)現(xiàn)許多包的源代碼的JAR文件。為JUnit源代碼創(chuàng)建一個(gè)新的變量,按照上面創(chuàng)建JUNTIT的步驟,不過此變量名為JUNIT_SRC(通常在源代碼變量前面添加前綴_SRC)并且將它連接到eclipsepluginsorg.eclipse.jdt.source_3.0.2 rcorg.junit_3.8.1/junitsrc.zip。

創(chuàng)建此變量以后,在project JN_test上單擊鼠標(biāo)右鍵,選擇Properties,打開JN_test的屬性對(duì)話框,點(diǎn)擊Java Build Path項(xiàng)和Libraries選項(xiàng)。并Add Variable,添加JUNIT變量,所得如圖所示:

當(dāng)展開一個(gè)JAR文件結(jié)點(diǎn)的時(shí)候,能夠指定在何處尋找相關(guān)聯(lián)的源代碼和Javadoc。為了對(duì)這里的源代碼使用JUNIT_SRC,選擇結(jié)點(diǎn)中的Source Attachement,單擊edit打開Source Attachment Configuration對(duì)話框。點(diǎn)擊Variable按鈕,雙擊JUNIT_SRC,并點(diǎn)擊OK關(guān)閉此對(duì)話框。如圖所示:

這里我們已經(jīng)使JUnit的源代碼能在Eclipse上使用。點(diǎn)擊OK關(guān)閉JN_test的屬性對(duì)話框。

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