您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit4概述(三)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/12/11 11:21:03 ] 推薦標(biāo)簽:

三、創(chuàng)建一個待測試的對象。

你要測試哪個類,那么你首先要創(chuàng)建一個該類的對象。正如上一篇文章中的代碼:

private static Calculator calculator = new Calculator();、

為了測試Calculator類,我們必須創(chuàng)建一個calculator對象。

四、測試方法的聲明

在測試類中,并不是每一個方法都是用于測試的,你必須使用“標(biāo)注”來明確表明哪些是測試方法。“標(biāo)注”也是JDK5的一個新特性,用在此處非常恰當(dāng)。我們可以看到,在某些方法的前有@Before、@Test、@Ignore等字樣,這些是標(biāo)注,以一個“@”作為開頭。這些標(biāo)注都是JUnit4自定義的,熟練掌握這些標(biāo)注的含義非常重要。

五、編寫一個簡單的測試方法。

首先,你要在方法的前面使用@Test標(biāo)注,以表明這是一個測試方法。對于方法的聲明也有如下要求:名字可以隨便取,沒有任何限制,但是返回值必須為void,而且不能有任何參數(shù)。如果違反這些規(guī)定,會在運(yùn)行時拋出一個異常。至于方法內(nèi)該寫些什么,那要看你需要測試些什么了。比如:
    @Test

    public void testAdd() ...{

          calculator.add(2);

          calculator.add(3);

          assertEquals(5, calculator.getResult());

    }

我們想測試一下“加法”功能時候正確,在測試方法中調(diào)用幾次add函數(shù),初始值為0,先加2,再加3,我們期待的結(jié)果應(yīng)該是5。如果終實際結(jié)果也是5,則說明add方法是正確的,反之說明它是錯的。assertEquals(5, calculator.getResult());是來判斷期待結(jié)果和實際結(jié)果是否相等,第一個參數(shù)填寫期待結(jié)果,第二個參數(shù)填寫實際結(jié)果,也是通過計算得到的結(jié)果。這樣寫好之后,JUnit會自動進(jìn)行測試并把測試結(jié)果反饋給用戶。

六、忽略測試某些尚未完成的方法。

如果你在寫程序前做了很好的規(guī)劃,那么哪些方法是什么功能都應(yīng)該實現(xiàn)定下來。因此,即使該方法尚未完成,他的具體功能也是確定的,這也意味著你可以為他編寫測試用例。但是,如果你已經(jīng)把該方法的測試用例寫完,但該方法尚未完成,那么測試的時候一定是“失敗”。這種失敗和真正的失敗是有區(qū)別的,因此JUnit提供了一種方法來區(qū)別他們,那是在這種測試函數(shù)的前面加上@Ignore標(biāo)注,這個標(biāo)注的含義是“某些方法尚未完成,暫不參與此次測試”。這樣的話測試結(jié)果會提示你有幾個測試被忽略,而不是失敗。一旦你完成了相應(yīng)函數(shù),只需要把@Ignore標(biāo)注刪去,可以進(jìn)行正常的測試。

七、Fixture(暫且翻譯為“固定代碼段”)

Fixture的含義是“在某些階段必然被調(diào)用的代碼”。比如我們上面的測試,由于只聲明了一個Calculator對象,他的初始值是0,但是測試完加法操作后,他的值不是0了;接下來測試減法操作,必然要考慮上次加法操作的結(jié)果。這是一個很糟糕的設(shè)計!我們非常希望每一個測試都是獨立的,相互之間沒有任何耦合度。因此,我們很有必要在執(zhí)行每一個測試之前,對Calculator對象進(jìn)行一個“復(fù)原”操作,以消除其他測試造成的影響。因此,“在任何一個測試執(zhí)行之前必須執(zhí)行的代碼”是一個Fixture,我們用@Before來標(biāo)注它,如前面例子所示:

      @Before

      public void setUp() throws Exception ...{

           calculator.clear();

      }

這里不在需要@Test標(biāo)注,因為這不是一個test,而是一個Fixture。同理,如果“在任何測試執(zhí)行之后需要進(jìn)行的收尾工作”也是一個Fixture,使用@After來標(biāo)注。由于本例比較簡單,沒有用到此功能。

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