Java中幾種Unit Test場景

為什么寫本文

當(dāng)團隊有要求寫Unit Test時,你是不是想堅持團隊的這種要求,但是內(nèi)心中會有一下幾種想法呢疑俭?

1,我該怎么開始Unit Test ?
2婿失,我寫代碼似乎沒有什么該測試的?
3怠硼,感覺寫Unit Test會花費我部分時間?
4,參考別人的Unit Test Code移怯,并不清楚為人為什么寫那么多Unit Test香璃,到底該測試什么?
...

如果你被這些問題困擾舟误,可以看看本文葡秒,或許能給一些答案。


概要

0, 哪些場景需要Unit Test
1,為API接口添加測試
2眯牧,業(yè)務(wù)代碼如何測試
3蹋岩,Exception的測試
4,斷言的風(fēng)格


0学少,哪些場景需要Unit Test

時間和質(zhì)量總是被開發(fā)人員剪个、開發(fā)人員周圍的角色所提及,你或許知道“測試金字塔”版确,但是這里并不是講測試金字塔中的策略扣囊,而是實際工作中如何權(quán)衡寫UnitTest的時間和質(zhì)量。

衡量時間和質(zhì)量绒疗,可以通過一個很好的緯度的權(quán)衡:價值侵歇。

圍繞價值,我們沒有必要處處寫測試這么極端吓蘑,也不用完全覺得寫Unit Test花費了太多時間惕虑。

在產(chǎn)出價值最大的地方花時間加上Unit Test,投入產(chǎn)出比才會最大化(即:價值最大化)磨镶。

以Java Web后端開發(fā)為例溃蔫,以下幾部分是非常值得我們關(guān)注的。

1琳猫,API是否符合預(yù)期
2伟叛,業(yè)務(wù)實現(xiàn)是否符合預(yù)期
3,程序中Exception是否已經(jīng)捕獲處理

1沸移,為API添加測試

為什么為API添加測試痪伦?

1,API是Web服務(wù)與外界直接溝通的地方雹锣,確保API能夠接收預(yù)期的參數(shù)并返回預(yù)期的結(jié)果网沾,保證API的正確性。
2蕊爵,為API添加UnitTest能夠降低調(diào)用API是出現(xiàn)異常情況的溝通成本辉哥。

應(yīng)該為API添加哪些測試?

1攒射,驗證參數(shù)
2醋旦,驗證返回結(jié)果

如何寫API的測試?API測試示例


2会放,業(yè)務(wù)代碼的測試

為什么為業(yè)務(wù)代碼添加測試?

1饲齐,證明自己的業(yè)務(wù)邏輯是對的,相比程序的整個上下文都運行起來后實際測試才發(fā)現(xiàn)問題咧最,發(fā)現(xiàn)/修改的成本更低捂人。
2御雕,修改代碼是,原來寫的業(yè)務(wù)Unit Test成了約束滥搭,修復(fù)Unit Test的過程酸纲,是我們確認自己程序修改正確的過程。

為業(yè)務(wù)代碼添加哪些測試瑟匆?

1闽坡,當(dāng)調(diào)用某段業(yè)務(wù)代碼后,有沒有返回預(yù)期的的想要的結(jié)果
2愁溜,當(dāng)業(yè)務(wù)代碼傳入一些非法數(shù)據(jù)是疾嗅,業(yè)務(wù)代碼是否返回了期望的結(jié)果

如何對service進行的單元測試?業(yè)務(wù)邏輯的測試示例


3祝谚,Exception的測試

為什么添加Exception的測試宪迟?

1酣衷,關(guān)注Exception能夠讓我們寫的代碼更加健壯交惯,確保業(yè)務(wù)代中的Exception早在掌握之中囱淋。
2烟勋,關(guān)注Exception讓我們多重視角看待需求,不僅僅正常的情況下程序正常運行蹦玫,也應(yīng)該保證異常情況是程序是否能夠正常運行啊片,返回預(yù)期的結(jié)果只锻。

為Exception添加哪些測試

1,當(dāng)某些異常情況下紫谷,是否拋出期望的異常齐饮;
2,當(dāng)拋出異常時笤昨,是否期望的代碼執(zhí)行時拋出的異常祖驱。

如何對Exception進行測試?Exception測試示例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞒窒,一起剝皮案震驚了整個濱河市捺僻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崇裁,老刑警劉巖匕坯,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拔稳,居然都是意外死亡葛峻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門巴比,熙熙樓的掌柜王于貴愁眉苦臉地迎上來术奖,“玉大人逼侦,你說我怎么就攤上這事⊙遥” “怎么了榛丢?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長挺庞。 經(jīng)常有香客問我晰赞,道長,這世上最難降的妖魔是什么选侨? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任掖鱼,我火速辦了婚禮,結(jié)果婚禮上援制,老公的妹妹穿的比我還像新娘戏挡。我一直安慰自己,他們只是感情好晨仑,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布褐墅。 她就那樣靜靜地躺著,像睡著了一般洪己。 火紅的嫁衣襯著肌膚如雪妥凳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天答捕,我揣著相機與錄音逝钥,去河邊找鬼。 笑死拱镐,一個胖子當(dāng)著我的面吹牛艘款,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沃琅,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼哗咆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了阵难?” 一聲冷哼從身側(cè)響起岳枷,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呜叫,沒想到半個月后空繁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡朱庆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年盛泡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娱颊。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡傲诵,死狀恐怖凯砍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拴竹,我是刑警寧澤悟衩,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站栓拜,受9級特大地震影響座泳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜幕与,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一挑势、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啦鸣,春花似錦潮饱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蝙搔,卻和暖如春缕溉,著一層夾襖步出監(jiān)牢的瞬間考传,已是汗流浹背吃型。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留僚楞,地道東北人勤晚。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像泉褐,于是被迫代替她去往敵國和親赐写。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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