亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit測試的粒度問題
作者:網絡轉載 發布時間:[ 2013/5/24 11:28:01 ] 推薦標簽:

對于JUnit測試和TDD實踐中有如下的疑問,請各位解惑:

JUnit測試的粒度如何把握?

簡單的說是針對public的方法寫測試OK了呢?還是說要具體針對public方法中執行邏輯的每個步驟來寫測試方法?

先說一下為什么會有這種困惑:

業務邏輯比較簡單時,當然只針對Public方法的業務流程來設計案例,并只對public方法寫test方法好。

但近做一個保險的項目,計算超復雜的那種,用戶點一個Button后臺要操作十幾張表,數據Copy來Copy去

中間還有各種各樣的計算,設計的業務Interface方法中接受User的輸入,然后執行整個操作。

現在談一下兩種實現的方式:

1.按TDD的方式,先寫測試代碼,再寫實現代碼,實現過程不斷重構(未完整了解過TDD,只是皮毛,如有誤解見諒)

這種方式實現起來很有難度。首先測試代碼的覆蓋度很難保證:當復雜的業務邏輯揉在一個方法中(即使重構拆成若干小方法),流程分支成冪增長,很難一開始把所有的情形都考慮清楚,即使都考慮到了,寫出來的TestCase也可能是超復雜的,反而會成為一種負擔。

另外,這樣來做實際上也相當于大塊大塊的Coding,然后測試,偏離了TDD的本意,Coding過程中沒辦法保證做的每一步都是正確的,而是將這個測試推遲到完成了整個實現之后。

2.對整個業務邏輯的實現大致上先分為幾個步驟,每個步驟的實現可以放在protected方法中以便測試,然后再針對每一步來實踐TDD,這樣沒有上述的兩個問題,而且終程序員對自己代碼的信心會大增。但這樣來做也有一些問題。

首先,每一步驟的方法都是protected才能保證測試,這樣破壞了封裝

其次,測試代碼是針對接口實現的過程來寫的,而不是針對接口的功能,所以測試代碼可能會很脆弱,實現過程稍作變化測試代碼也可能要做修改

所以,根本的問題也是單元測試是應該針對接口實現的過程還是接口的功能?

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 夜夜拍拍| 成人抖音视频 | 国产成人精品永久免费视频 | 日韩黄色影视 | 黄频大全| 国产成人精品日本亚洲语音2 | 色综合色狠狠天天久久婷婷基地 | 毛片链接 | 免费精品录播大片黄满18周岁 | 在线中文字幕精品第5页 | 国产成人人人爆出白浆 | www在线| 久久婷婷是五月综合色狠狠 | 日日摸夜夜添夜夜添一区二区 | 国产精品合集一区二区三区 | 巨人导航收录500精品 | 日韩高清一区 | 日本不卡在线 | 亚洲国产综合精品中文字幕 | 国产欧美日韩在线不卡第一页 | 免费在线观看黄色小视频 | freexxxx性中国hd | 久久大香伊蕉在人线国产联合 | 欧美一二区视频 | 国产50页 | 一个人看的视频www在线看 | 免费无尽xxx视频 | 免费黄色一级片 | 免费观看欧美一级片 | 怡红院视频在线观看 | 好吊色几万部永久免费视频 | 亚洲丁香婷婷综合久久小说 | 日本黄色片在线 | 99久久这里只精品麻豆 | 国产精品久久久久久久久久直 | 亚洲影视天堂 | 久国产 | 久久综合中文字幕一区二区 | 欧美视频精品在线观看 | 色天天综合色天天天天看大 | 中文字幕一精品亚洲无线一区 |