亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit 4 的一些新功能
作者:網絡轉載 發布時間:[ 2013/2/26 15:08:29 ] 推薦標簽:

        在junit4中開始使用這樣的包結構:org.junit.* ,而不再像以前使用這樣的包結構:junit.framework.*,但是為了向后兼容,在Junit4中將會讓這兩種包結構并存

繼承上的變化

        你的測試類再也不需要extends這個類junit.framework.TestCase了,而且不用顯示的繼承任何一個類,Junit通過采用JDK 5.0的annotations特性來完成了這種轉變。如果想要執行一個test case,只需要在你的測試類中至少包含一個這樣的annotation可以了@Test。
        打個比方,如果你寫了這樣的一個類,里面只包含了@Before 和 @After這樣的annotation,卻沒有包含任何的@Test,那么在你開始運行這個測試類的時候,你會碰到一個java的異常:java.lang.Exception: No runnable methods.

斷言方法的變化

         因為在Junit 4中,測試類不再繼承TestCase(在這個類里JUnit 3.8版本中定義了assertEquals()等方法),所以你需要使用一個前綴的語法像這樣:Assert.assertEquals(),或者用JDK 5.0中的靜態導入,來導入Assert,之后,你可以像之前那樣使用assertEquals等等這些方法了

        另外,在Junit 4中增加了兩個新的斷言方法,他們用來比較兩個對象數組,如果兩個數組中的每個元素都是equal的,那么認為這兩個數組是equal的:
    public static void assertEquals(String message, Object[] expecteds, Object[] actuals);
    public static void assertEquals(Object[] expecteds, Object[] actuals);

         還有12個assertEquals 方法已經因為JDK 5.0中的autoboxing功能而徹底消失了。像這樣assertEquals(long, long) 之前在JUnit 3.8中使用的方法,現在已經都統一改用assertEquals(Object, Object)方法。

Fixture

        Fixtures是在測試期間用來初始化(initialize)和釋放(release)對象的一些方法,在 In JUnit 3.8中,需要用setUp() 方法在運行測試方法之前進行一些初始化的工作,然后在測試完成之后用tearDown() 方法來進行善后工作。這兩個方法都是從父類TestCase 中override過來的,因此他們的方法聲明及方法名稱是固定的。在JUnit 4中我們只要使用這兩個annotation:@Before 和 @After 可以達到同樣的目的了,而且我們不用再強制的讓方法必須叫這兩個名字了。^_^

測試方法上的變化

          在JUnit 3.8中,用來標識一個測試方法是通過它的方法簽名來實現的,即方法必須以一個"test"的前綴來命名,且必須為void,而且必須沒有任何參數(比如:public void testDivide()),那些不遵循這種命名規則的方法將會被簡單的忽略掉,而且不會拋出任何異常來表面已經發生了錯誤。

        在JUnit 4中沒有命名上的限制了,只需要在測試方法的簽名加上一個這樣的annotation可以了:@Test,像之前的限制:方法必須為void,而且必須沒有任何參數,這些還是一樣需要,只是限制改為,如果沒有遵守這些限制,則會在運行的時候拋出下面的異常:
     java.lang.Exception: Method xxx should have no parameters
     java.lang.Exception: Method xxx should be void
另外,@Test支持可選的expected參數,用來聲明這個測試方法可以拋出一個異常,如果在測試時沒有拋出異常,或者拋出了一個其他的異常,都會認為測試是失敗的。比如可以這樣來聲明@Test(expected = ArithmeticException.class)。

忽略一個測試方法

         如果你在測試之前知道某個方法測試一定會失敗,但是,你又不想讓測試失敗,那么你怎么臨時的讓這個測試方法被忽略掉呢?在JUnit 3.8中要么將這個方法注釋掉,要么需要改變方法名稱,即不使用test前綴開頭來命名方法,問題是當測試的方法很多時,你可能不記得你重命名過的這個方法了。而在JUnit 4中可以通過去掉方法前面的@Test annotation來達到目的,但是上面的問題依然存在,一個解決方案是:在需要測試的方法前/后即@Test的前面或者后面加上@Ignore 可以了,后在測試報告中將會顯示出有多少方法被忽略掉了,同時會顯示多少方法運行成功,以及多少方法運行失敗。Note:@Ignore 有一個可選的參數,可以用它來簡單的記錄為什么這個方法被忽略掉了。

運行測試

         在JUnit 3.8中你可以有多種運行方式:text, AWT或者Swing,但是在JUnit 4中僅使用text方式。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产精品欧美一区二区三区 | 天天做天天添天天谢 | 日本九色| 香蕉国产人午夜视频在线观看 | 中文字幕日韩欧美一区二区三区 | 狠狠色丁香六月色 | 国产在线欧美精品中文一区 | 日韩a级毛片免费视频 | 天天插天天插天天插 | 天堂网成人 | 午夜性色吃奶添下面69影院 | 日韩欧美在线免费观看 | 狠狠色噜噜狠狠色综合久 | 色多多网站 | 色黄啪啪18周岁以下禁止观看 | 精品区| 在线观看 日韩 | 国产精品视_精品国产免费 国产精品视频a | 中文字幕一区二区三区免费看 | 天天做日日爱 | 月婷婷色狠狠 | 久操视频在线观看免费 | 国产亚洲欧美一区二区 | 国产欧美日 | 草久久久| 欧美国产永久免费看片 | 久久久久无码国产精品一区 | 亚洲最大在线视频 | 亚洲最大的黄色网址 | 久久精品久久精品国产大片 | 成年免费大片黄在线观看视频 | 97精品国产高清久久久久蜜芽 | 麻豆md国产在线观看 | 免费的三级毛片 | 亚洲色图第1页 | 亚洲欧美日韩在线2020 | 国产精品18久久久久网站 | 国产日韩欧美在线一二三四 | 1024国产精品视频观看 | 任你躁在线精品视频m3u8 | 小明爱看看永久成人免费平台 |