Junit——Assert斷言

junit.framework包下的Assert提供了多個斷言方法. 主用于比較測試傳遞進去的兩個參數(shù).Assert斷言的使用比較簡單撵颊,主要有以下函數(shù):
Assert.assertEquals([String message],T expected,T actual)
比較兩個參數(shù)是否相等丢间,message是可選的消息颈将,假如加入了該參數(shù),則發(fā)生錯誤時會報告該消息饥脑。如果 expected,actual,返回true恳邀。否則調(diào)用 expected.equals(actual)來判斷。
Assert.assertNotEquals([String message],T expected,T actual)
比較兩個參數(shù)是否不相等灶轰,message是可選的消息谣沸,假如加入了該參數(shù),則發(fā)生錯誤時會報告該消息笋颤。

Assert.assertSame([String message],T expected,T actual)
以expected==actual運算的結(jié)果來判斷乳附。
expected.equals(actual) 和 expected==actual 的差別在于。如果expected沒有重寫java.lang.Object的equals方法椰弊,那么就是兩個java對象的內(nèi)存地址比較许溅,比較結(jié)果和 expected==actual的結(jié)果相同瓤鼻。如果expected重寫了equals方法(比如GregorianCalendar秉版,BigDecimal類),那么比較的結(jié)果不一定和expected==actual的結(jié)果相同茬祷。
Assert.assertNotSame([String message],T expected,T actual)
以expected != actual運算的結(jié)果來判斷清焕。如果expected沒有重寫java.lang.Object的equals方法,那么就是兩個java對象的內(nèi)存地址比較祭犯,比較結(jié)果和 expected != actual的結(jié)果相同秸妥。如果expected重寫了equals方法(比如GregorianCalendar,BigDecimal類)沃粗,那么比較的結(jié)果不一定和expected !=actual的結(jié)果相同粥惧。

Assert.assertTrue([String message],boolean condition)
如果表達式condition結(jié)果為真,則測試通過最盅,message為可選信息突雪,若有則condition結(jié)果為假時顯示message的內(nèi)容
Assert.assertFalse([String message],boolean condition)
如果表達式condition結(jié)果為假,則測試通過涡贱,message為可選信息咏删,若有則condition結(jié)果為真時顯示message的內(nèi)容

Assert.assertArrayEquals([String message], Object[] expected, Object[] actual)
以最直接的方式比較數(shù)組:如果數(shù)組長度相同,且每個對應(yīng)的元素相同问词,則兩個數(shù)組相等督函,否則不相等。數(shù)組為空的情況也作了考慮。message為可選信息辰狡,若不相等則會打印message锋叨。

Assert.assertNotNull([String message], Object object)
斷言object為空,message為可選信息,若不為空打印message
Assert.assertNotNull([String message], Object object)
斷言object不為空宛篇,message為可選信息悲柱,若為空打印message

Assert.assertThat([String reason],T actual, Matcher matcher)
其中actual為需要測試的變量,matcher為使用Hamcrest的匹配符來表達變量actual期望值的聲明些己;assertThat是Junit 4.4加入的新方法豌鸡,理論上講程序員可以只使用 assertThat 一個斷言語句,結(jié)合 Hamcrest 提供的匹配符段标,就可以表達全部的測試思想涯冠。

核心匹配符

1、assertThat( T actual, allOf( greaterThan(number1), lessThan(numer2) ) )
allOf匹配符表明如果接下來的所有條件必須都成立測試才通過逼庞,相當于“與”(&&)

2蛇更、assertThat( T actual, anyOf( greaterThan(number1), lessThan(number2) ) )
anyOf匹配符表明如果接下來的所有條件只要有一個成立則測試通過,相當于“或”(||)

3赛糟、assertThat( T actual, anything() )
anything匹配符表明無論什么條件派任,永遠為true

4、assertThat( T actual, is(T expected ) )
is匹配符表明如果前面actual等于expected璧南,則測試通過

5掌逛、assertThat( T actual, not( T expected ) )
not匹配符和is匹配符正好相反,表明如果actual不等于expected司倚,則測試通過

6豆混、assertThat(T actual,comparesEqualTo(T expected))
comparesEqualTo表示將actual和expected進行比較,只要在"數(shù)值"上相等即測試通過动知,比如1和1皿伺,"1"和"1"

字符串相關(guān)匹配符

1、assertThat( T actual, containsString( String s ) )
containsString匹配符表明如果測試的字符串a(chǎn)ctual包含子字符串s則測試通過

2盒粮、assertThat( String actual, endsWith( String s ) )
endsWith匹配符表明如果測試的字符串a(chǎn)ctual以子字符串s結(jié)尾則測試通過

3鸵鸥、assertThat( String actual, startsWith( String s ) )
startsWith匹配符表明如果測試的字符串a(chǎn)ctual以子字符串s開始則測試通過

4、assertThat( T actual, equalTo( T excepted ) )
equalTo匹配符表明如果actual等于excepted則測試通過丹皱,equalTo可以測試數(shù)值之間妒穴,字符串之間和對象之間是否相等,相當于Object的equals方法

5种呐、assertThat( String actual, equalToIgnoringCase( String s ) )
equalToIgnoringCase匹配符表明如果actual在忽略大小寫的情況下等于s則測試通過

6宰翅、assertThat( String actual, equalToIgnoringWhiteSpace( String s ) )
equalToIgnoringWhiteSpace匹配符表明如果actual在忽略頭尾的任意個空格的情況下等于s則測試通過,注意:字符串中的空格不能被忽略

數(shù)值相關(guān)匹配符

1爽室、assertThat( T actual, closeTo( Number, precision ) )
closeTo匹配符表明如果所測試的浮點型數(shù)actual在Number±precision范圍之內(nèi)則測試通過

2汁讼、assertThat( T actual, greaterThan(Number) )
greaterThan匹配符表明如果所測試的數(shù)值actual大于Number則測試通過

3淆攻、assertThat( T actual, lessThan (Number) )
lessThan匹配符表明如果所測試的數(shù)值actual小于Number則測試通過

4、assertThat( T actual, greaterThanOrEqualTo (Number) )
greaterThanOrEqualTo匹配符表明如果所測試的數(shù)值actual大于等于Number則測試通過

5嘿架、assertThat( T actual, lessThanOrEqualTo (Number) )
lessThanOrEqualTo匹配符表明如果所測試的數(shù)值actual小于等于Number則測試通過

collection相關(guān)匹配符

1瓶珊、assertThat( mapObject, hasEntry( "key", "value" ) )
hasEntry匹配符表明如果測試的Map對象mapObject含有一個鍵值為"key"對應(yīng)元素值為"value"的Entry項則測試通過

2、assertThat( iterableObject, hasItem ( "element" ) )
hasItem匹配符表明如果測試的迭代對象iterableObject含有元素“element”項則測試通過

3耸彪、assertThat( mapObject, hasKey ( "key" ) )
hasKey匹配符表明如果測試的Map對象mapObject含有鍵值“key”則測試通過

4伞芹、assertThat( mapObject, hasValue ( "key" ) )
hasValue匹配符表明如果測試的Map對象mapObject含有元素值“value”則測試通過

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝉娜,隨后出現(xiàn)的幾起案子唱较,更是在濱河造成了極大的恐慌,老刑警劉巖召川,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件南缓,死亡現(xiàn)場離奇詭異,居然都是意外死亡荧呐,警方通過查閱死者的電腦和手機汉形,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倍阐,“玉大人概疆,你說我怎么就攤上這事》逄拢” “怎么了岔冀?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罢艾。 經(jīng)常有香客問我楣颠,道長,這世上最難降的妖魔是什么咐蚯? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮弄贿,結(jié)果婚禮上春锋,老公的妹妹穿的比我還像新娘。我一直安慰自己差凹,他們只是感情好,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惶岭,像睡著了一般朗和。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谊娇,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天肺孤,我揣著相機與錄音,去河邊找鬼。 笑死赠堵,一個胖子當著我的面吹牛小渊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茫叭,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼酬屉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了揍愁?” 一聲冷哼從身側(cè)響起呐萨,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莽囤,沒想到半個月后垛吗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡烁登,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年怯屉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饵沧。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡锨络,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狼牺,到底是詐尸還是另有隱情羡儿,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布是钥,位于F島的核電站掠归,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏悄泥。R本人自食惡果不足惜虏冻,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弹囚。 院中可真熱鬧厨相,春花似錦、人聲如沸鸥鹉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毁渗。三九已至践磅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灸异,已是汗流浹背府适。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工羔飞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人细溅。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓褥傍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喇聊。 傳聞我的和親對象是個殘疾皇子恍风,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容