成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Eclipse中使用JUnit4進(jìn)行單元測試(2)

開發(fā) 后端
本文講述在Eclipse中使用JUnit4進(jìn)行單元測試(2)

在測試類中用到了JUnit4框架,自然要把相應(yīng)地Package包含進(jìn)來。最主要地一個Package就是org.junit.*。把它包含進(jìn)來之后,絕大部分功能就有了。還有一句話也非常地重要“import static org.junit.Assert.*;”,我們在測試的時候使用的一系列assertEquals方法就來自這個包。大家注意一下,這是一個靜態(tài)包含(static),是JDK5中新增添的一個功能。也就是說,assertEquals是Assert類中的一系列的靜態(tài)方法,一般的使用方式是Assert. assertEquals(),但是使用了靜態(tài)包含后,前面的類名就可以省略了,使用起來更加的方便。

二、     測試類的聲明

大家注意到,我們的測試類是一個獨(dú)立的類,沒有任何父類。測試類的名字也可以任意命名,沒有任何局限性。所以我們不能通過類的聲明來判斷它是不是一個測試類,它與普通類的區(qū)別在于它內(nèi)部的方法的聲明,我們接著會講到。

三、     創(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è)計!我們非常希望每一個測試都是獨(dú)立的,相互之間沒有任何耦合度。因此,我們就很有必要在執(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)注。由于本例比較簡單,沒有用到此功能。

【編輯推薦】

  1. Eclipse工具使用格式化模板應(yīng)用
  2. Eclipse or Netbeans
  3. eclipse中編碼設(shè)置
  4. Eclipse用戶中使用Linux的數(shù)量趕超Windows
  5. Eclipse中代碼模版
責(zé)任編輯:book05 來源: 163博客
相關(guān)推薦

2009-06-08 19:57:29

EclipseJUnit4單元測試

2009-06-08 20:04:06

EclipseJUnit4單元測試

2017-01-14 23:26:17

單元測試JUnit測試

2017-01-16 12:12:29

單元測試JUnit

2023-10-13 18:02:57

JUnitMockito關(guān)系

2011-08-11 13:02:43

Struts2Junit

2013-06-04 09:49:04

Spring單元測試軟件測試

2012-02-07 09:08:50

Feed4JUnitJava

2017-03-23 16:02:10

Mock技術(shù)單元測試

2021-03-28 23:03:50

Python程序員編碼

2011-12-26 10:38:28

JavaJUnitRule

2021-03-24 09:30:02

Jupyter not單元測試代碼

2023-08-02 13:59:00

GoogleTestCTest單元測試

2013-01-07 13:54:17

Android開發(fā)JUnit單元測試

2011-11-18 15:18:41

Junit單元測試Java

2017-01-14 23:42:49

單元測試框架軟件測試

2011-12-26 10:49:27

JavaJUnitRunner

2011-07-27 13:39:28

iOS GH-Unit 單元測試

2021-01-07 14:06:30

Spring BootJUnit5Java

2009-08-19 09:00:48

單元測試框架自動化測試
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线日韩欧美 | 久久99精品久久久久久青青日本 | 91av精品 | 久久久久久九九九九九九 | 97精品国产97久久久久久免费 | 国产精品呻吟久久av凹凸 | 精品欧美乱码久久久久久 | 免费黄色片在线观看 | 国产精品中文 | 日韩av中文 | 国产精品入口麻豆www | 亚洲欧美一区二区三区在线 | 国产综合在线视频 | 一二区视频 | 亚洲精品久久 | 秋霞电影一区二区三区 | 欧美视频中文字幕 | 一区二区在线不卡 | 国产探花在线精品一区二区 | 久久久资源 | 国产乱码精品一区二区三区忘忧草 | 九一国产精品 | 狠狠久久| 99小视频 | 国产激情在线播放 | 久久99视频精品 | 国产免费一区二区三区 | 国产精品久久久久久久久久免费看 | av在线免费观看网址 | 日韩视频中文字幕 | 日韩毛片网 | 亚洲精品成人免费 | 玖玖国产精品视频 | 羞羞色网站 | 国产三区视频在线观看 | 一区二区影院 | 99视频在线 | 精品综合网 | 久久久精品一区二区三区 | 久久久精品黄色 | 亚洲国产精品一区 |