生活随笔
收集整理的這篇文章主要介紹了
junit简单介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
整體內(nèi)容順序轉(zhuǎn)載自百度百科:junit 下面也添加了自己的見解
以前在做單元測(cè)試時(shí)不怎么注意,感覺單元測(cè)試有時(shí)候是多余的,但是現(xiàn)在工作了,才知道原來單元測(cè)試這么牛逼,雖然簡(jiǎn)單,但是里面的東西會(huì)很幫助我們,如果你現(xiàn)在還只是簡(jiǎn)單的運(yùn)用junit,而不是在項(xiàng)目里時(shí)刻的用到,那么你可能很牛逼了,竟然靠經(jīng)驗(yàn)就可以知道這個(gè)有沒有bug。
Junit是一個(gè)java語言的單元測(cè)試框架,也是回歸測(cè)試框架,在軟件軟工中也叫白盒測(cè)試,繼承TestCase類(Junit4的測(cè)試類不用再繼承TestCase父類,引入了Annotation(注解))
一、junit的優(yōu)點(diǎn)
極限編程:要求在編寫代碼前先寫測(cè)試,這樣可以強(qiáng)制你在寫代碼之前好好思考代碼的功能與邏輯,否則編寫的代碼很不穩(wěn)定,也通俗的叫在寫代碼前自己想想你這個(gè)方法根據(jù)參數(shù)想得到的結(jié)果是什么? 也可以認(rèn)為是從結(jié)果出發(fā),所以很鍛煉你的思維,讓你養(yǎng)成極限的思維:構(gòu)思->編寫測(cè)試代碼->編寫代碼->測(cè)試。而且可以很快的找到問題的原因,不怕以后忙起來忘了這里原來是怎么測(cè)試的,并進(jìn)行重復(fù)繁瑣的測(cè)試工作。重構(gòu):這個(gè)也是改一點(diǎn)測(cè)一點(diǎn),減少回歸錯(cuò)誤造成的時(shí)間消耗,就算重構(gòu)也不會(huì)影響你這個(gè)犯法返回的結(jié)果什么,重構(gòu)只是讓代碼更加簡(jiǎn)潔,更加易懂,得到的結(jié)果如果改變,就不叫重構(gòu)了。自動(dòng)化:以前我們自己測(cè)試要debug打斷點(diǎn)或者輸出結(jié)果看看,這樣增加了自己的工作量,影響我們的效率,尤其是對(duì)于復(fù)用的方法,如果里面的邏輯變了,是否會(huì)得到我們想要的結(jié)果。而junit就幫我們?nèi)孔隽?#xff0c;它有斷言功能,Assert來對(duì)結(jié)果進(jìn)行比較,是否符合自己的預(yù)期,非常方便。比如java肯定要面向接口編程,那一個(gè)接口服務(wù)就可以做一個(gè)單元測(cè)試,當(dāng)服務(wù)里面的邏輯更改后,只需要?jiǎng)觿?dòng)鼠標(biāo)就知道自己的這個(gè)服務(wù)是否能得到自己想要的結(jié)果隔離性:這個(gè)就需要我們自己去設(shè)置,一般推薦測(cè)試用例不要是歷史數(shù)據(jù),因?yàn)橐坏﹣G失,單元測(cè)試就會(huì)失敗。需要注意的是單元測(cè)試類的單元測(cè)試方法之間是互不干擾的,而且執(zhí)行順序是不可預(yù)測(cè)的,不要想著先執(zhí)行這個(gè)單元測(cè)試,留下結(jié)果給下一個(gè)單元測(cè)試,這是非常不對(duì)的,。
二、用junit需要注意的事情
不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown(),junit4就可以用**@Before**和 @After代替不要依賴或假定測(cè)試運(yùn)行的順序,因?yàn)镴unit利用Vertor保存測(cè)試方法,所以不同的平臺(tái)會(huì)按不同的順序從Vertor中取出測(cè)試方法。避免編寫有副作用的TestCase,如果測(cè)試數(shù)據(jù)依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù),簡(jiǎn)單回滾就可以(前提是需要設(shè)置事務(wù))測(cè)試類和測(cè)試方法應(yīng)該有一致的命名方案,如在工作類名前加Test形成測(cè)試類名,方法名前加test確保測(cè)試與時(shí)間無關(guān),不要依賴使用過期的數(shù)據(jù),導(dǎo)致后期維護(hù)過程很難重現(xiàn)測(cè)試,尤其是你用的數(shù)據(jù)被刪除了如果編寫的軟件面向國(guó)際市場(chǎng),編寫測(cè)試時(shí)就要考慮國(guó)際化的因素,不要僅用母語的Local進(jìn)行測(cè)試。盡可能的利用Junit提供的Assert/Fail方法以及異常處理的方法,可以使代碼簡(jiǎn)潔、高效,自動(dòng)化。測(cè)試盡可能的小(一個(gè)方法一個(gè)單元測(cè)試一般不會(huì)這樣,自己一般是一個(gè)服務(wù)一個(gè)單元測(cè)試方法,一個(gè)Controller一個(gè)單元測(cè)試方法),執(zhí)行速度快(這個(gè)就要看你這個(gè)測(cè)試有沒有時(shí)間要求)不要硬性規(guī)定數(shù)據(jù)文件的路徑,尤其是本地文件,否則再別的機(jī)器上可能就會(huì)找不到路徑利用Junit的自動(dòng)異常處理,不用在測(cè)試方法里寫try{}catch{},Junit 會(huì)自動(dòng)捕獲異常。那些沒有被捕獲的異常就被當(dāng)成錯(cuò)誤處理。
總結(jié)
以上是生活随笔為你收集整理的junit简单介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。