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

  一、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),測(cè)試expect是否等于actual(expect和actual是原始類型數(shù)值(primitive value)或者必須為實(shí)現(xiàn)比較而具有equal方法)
assertEquals(expectNum, actuNum);//運(yùn)行成功
assertEquals(storeId,"12345");//運(yùn)行失敗
//assertFalse(condition)測(cè)試是否為false(假),condition是一個(gè)Boolean數(shù)值
assertFalse(expectNum==100);//運(yùn)行成功
// assertTrue(condition)    測(cè)試是否為true(真),condition是一個(gè)Boolean數(shù)值
assertTrue(expectNum==123);//運(yùn)行成功
//assertNotNull(object),測(cè)試object是否非空,object是一個(gè)對(duì)象或者null。
PingJia pingjia=null;
assertNotNull(pingjia);//運(yùn)行失敗
//assertNull(object),測(cè)試object是否非空,object是一個(gè)對(duì)象或者null。
assertNull(pingjia);//運(yùn)行成功
// assertNotSame(unexpected, actual)測(cè)試unexpected和actual是否沒有都引用同一個(gè)對(duì)象。
String storeId1 = storeId;
assertNotSame(storeId, storeId1);//運(yùn)行失敗
// assertSame(unexpected, actual)測(cè)試unexpected和actual是否沒有都引用同一個(gè)對(duì)象。
assertSame(storeId, storeId1);//運(yùn)行成功
}

  二、junit新斷言

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

  2、assertThat語(yǔ)法如下:

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

  actual是接下來(lái)想要驗(yàn)證的值;

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

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

  3、注意事項(xiàng):

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

  4、優(yōu)點(diǎn)

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

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

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