您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
使用clover為junit單元測(cè)試做覆蓋率分析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/10/15 10:40:03 ] 推薦標(biāo)簽:

    報(bào)告左邊是包名,以及包下邊的類;右邊是主窗口,顯示當(dāng)前這個(gè)Money類的測(cè)試覆蓋率,我們可以通過行號(hào)來查看到15、16、17行執(zhí)行了156次,下邊還會(huì)有兩行一次也沒有執(zhí)行過,所以造成這個(gè)類整體的測(cè)試覆蓋率不是100%。

    四、重構(gòu)測(cè)試代碼實(shí)現(xiàn)百分百測(cè)試覆蓋率

    我們總是希望做單元測(cè)試的時(shí)候,讓代碼的測(cè)試覆蓋率盡可能的達(dá)到100%,所以我們需要重構(gòu)測(cè)試代碼。從分析得知,第40行雖然執(zhí)行了27次,但是從來沒有測(cè)試if的判斷條件為true的情況,所以我們要添加測(cè)試用例,測(cè)試isZero()返回為true的情況!因此,我們修改測(cè)試代碼MoneyTest.java文件,在前邊初始化地方加上一個(gè)Money實(shí)例,如下:

    public class MoneyTest extends TestCase {

    private Money f12CHF;

    private Money f14CHF;

    private Money f7USD;

    private Money f21USD;

    private Money f0USD;

    在setup方法里添加:

    protected void setUp() {

    f12CHF= new Money(12, "CHF");

    f14CHF= new Money(14, "CHF");

    f7USD= new Money( 7, "USD");

    f21USD= new Money(21, "USD");

    f0USD = new Money(0, "USD"); //sincky

    在后加上一個(gè)測(cè)試用例:

    public void testMoneyEqualsZero() {

    assertTrue(!f0USD.equals(null));

    IMoney equalMoney = new Money(0, "CHF");

    assertTrue(f0USD.equals(equalMoney));

    }

    之后,我們重新編譯,測(cè)試,創(chuàng)建報(bào)告,即執(zhí)行下列命令:

    >ant clean

    >ant clover compile

    >ant test

    >ant report

    這時(shí)候再打開新的html報(bào)告,看到如下效果覆蓋率已經(jīng)到達(dá)100%:

    完畢,如果能進(jìn)展到這一步,相信你已經(jīng)對(duì)使用junit、ant、clover做java的單元測(cè)試,已經(jīng)到了一個(gè)新的飛越!如果有興趣,你還可以把junit報(bào)告和clover報(bào)告一并輸出,以更好的為企業(yè)開發(fā)中使用這種工作模式!

    文章源碼均來自clover網(wǎng)站,本人稍做修改。

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