您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
junit斷言介紹
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2013/12/9 9:55:15 ] 推薦標簽:

  一、Junit4斷言

assertEquals(a, b)
assertFalse(a)
assertTrue(a)
assertNotNull(a)
assertNull(a)
assertNotSame(a, b)
assertSame(a, b)
@Test
publicvoidtestAssert()throwsException {
intexpectNum = 123;
intactuNum = 123;
String storeId ="123456";
// assertEquals(expect,actual),測試expect是否等于actual(expect和actual是原始類型數(shù)值(primitive value)或者必須為實現(xiàn)比較而具有equal方法)
assertEquals(expectNum, actuNum);//運行成功
assertEquals(storeId,"12345");//運行失敗
//assertFalse(condition)測試是否為false(假),condition是一個Boolean數(shù)值
assertFalse(expectNum==100);//運行成功
// assertTrue(condition)    測試是否為true(真),condition是一個Boolean數(shù)值
assertTrue(expectNum==123);//運行成功
//assertNotNull(object),測試object是否非空,object是一個對象或者null。
PingJia pingjia=null;
assertNotNull(pingjia);//運行失敗
//assertNull(object),測試object是否非空,object是一個對象或者null。
assertNull(pingjia);//運行成功
// assertNotSame(unexpected, actual)測試unexpected和actual是否沒有都引用同一個對象。
String storeId1 = storeId;
assertNotSame(storeId, storeId1);//運行失敗
// assertSame(unexpected, actual)測試unexpected和actual是否沒有都引用同一個對象。
assertSame(storeId, storeId1);//運行成功
}

  二、junit新斷言

  1、JUnit4.4引入了Hamcrest框架,使用全新的斷言語法:assertThat,結合Hamcest提供的匹配符,只用這一個方法,可以實現(xiàn)所有的測試,Hamcest提供了一套匹配符Matcher,這些匹配符更接近自然語言,可讀性高,更加靈活;

  2、assertThat語法如下:

assertThat(T actual, Matcher<T> matcher);
assertThat(String reason, T actual, Matcher<T> matcher);

  actual是接下來想要驗證的值;

  matcher是使用Hamcrest匹配符來表達的對前面變量所期望的值的聲明,如果actual值與matcher所表達的期望值相符,則斷言成功,否則斷言失敗。

  reason是自定義的斷言失敗時顯示的信息。

  3、注意事項:

  a. JUnit4.4之后的版本才能使用assertThat方法;

  4、優(yōu)點

  1)統(tǒng)一:只需一條assertThat語句即可替代舊有的其他語句(如assertEquals,assertNotSame,assertFalse,assertTrue,assertNotNull,assertNull等),使斷言變得簡單、代碼風格統(tǒng)一,增強測試代碼的可讀性和可維護性。

  2)直觀:assertThat不再像assertEquals那樣,使用比較難懂的“謂賓主”語法模式(如:assertEquals(3, x);)。相反,assertThat使用了類似于“主謂賓”的易讀語法模式(如:assertThat(x,is(3));),使得代碼更加直觀、易讀,符合人類思維習慣。

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