什么是自動(dòng)化單元測(cè)試?如何做好自動(dòng)化單元測(cè)試?

發(fā)布時(shí)間:2021-05-17

自動(dòng)化單元測(cè)試 = 自動(dòng)化 + 單元 + 測(cè)試 
 
近期,本人調(diào)研了一些自動(dòng)化單元測(cè)試覆蓋率是個(gè)位數(shù)的應(yīng)用,下面用實(shí)例來(lái)說(shuō)明什么不是自動(dòng)化單元測(cè)試,然后大概就清楚了為什么對(duì)很多開(kāi)發(fā)者來(lái)說(shuō)自動(dòng)化單元測(cè)試那么難。
 
個(gè)別的Java開(kāi)發(fā)者還在寫main方法,通過(guò)System.out.println()的方式來(lái)做單元測(cè)試,main方法很難被自動(dòng)執(zhí)行,println的結(jié)果也需要人眼去盯著判斷,顯然這種單元測(cè)試不是自動(dòng)化的。
 
大部分開(kāi)發(fā)者懂得使用JUnit,可惜很多人用JUnit的原因只是需要一個(gè)更好用的main方法而已,他們的測(cè)試代碼里訪問(wèn)了數(shù)據(jù)庫(kù)等有狀態(tài)的外部資源,根本無(wú)法重復(fù)地孤立地執(zhí)行,所以大部分工程在使用maven構(gòu)建的時(shí)候都設(shè)置了-Dmaven.test.skip=true。你沒(méi)有看錯(cuò),很多人用了JUnit這樣的自動(dòng)化測(cè)試框架,但卻不想讓它自動(dòng)執(zhí)行。顯然,用了JUnit,但并沒(méi)有做自動(dòng)化的單元測(cè)試。
 
如何做好自動(dòng)化單元測(cè)試?
 
這個(gè)更深層次的原因就是單元,既然單元測(cè)試位于組件測(cè)試之下,那單元的粒度比組件還要更小。要做好單元測(cè)試,首要條件是要有單元。如果組件內(nèi)的代碼沒(méi)有分成清晰獨(dú)立的小單元,那單元測(cè)試就無(wú)從談起。所以,三分測(cè)試,七分設(shè)計(jì)。
 
如果能將代碼合理地拆分成不同的單元,你就會(huì)發(fā)現(xiàn),大部分單元,都是非常獨(dú)立的,它們不依賴數(shù)據(jù)庫(kù)等外部資源,只是一個(gè)內(nèi)存的計(jì)算,所以這部分是非常容易做自動(dòng)化單元測(cè)試的。
 
不好做單元測(cè)試往往是膠水單元和有外部依賴的單元。而這部分代碼往往不是業(yè)務(wù)邏輯所在,代碼結(jié)構(gòu)也比較扁平,并不復(fù)雜。
 
所以,當(dāng)你的應(yīng)用的自動(dòng)化單測(cè)覆蓋率只是個(gè)位數(shù)的話,先不要急著引入測(cè)試框架工具,當(dāng)務(wù)之急是做這種單元化的改造,測(cè)試那些投入產(chǎn)出效果明顯的部分。
 
推薦閱讀:
 
 
 
 
 
本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問(wèn)題,請(qǐng)權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

微信客服
問(wèn)題
反饋
產(chǎn)品
畫冊(cè)

掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)

產(chǎn)品畫冊(cè)
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系