最近,在小組內(nèi)部做了一次關(guān)于“單元測試”的分享。把自己兩年來做單元測試遇到的問題和對單元測試的認(rèn)識做了一次總結(jié)和討論。
本文不會詳細(xì)地講述分享的內(nèi)容,僅僅是ppt的大綱顯示:
使用單元測試前提:
最小的成本,換來最大的收益
單元測試目的:
1)測試代碼錯誤(?) -- 不是主要目的
2)便于重構(gòu)時的測試
3)改善既有代碼的設(shè)計
分享核心:
1)如何脫離“webx“--做隔離測試
2)dal/biz/web 層如何做單元測試
3)如何通過改善代碼設(shè)計,更方便測試
dal層(數(shù)據(jù)庫訪問層)特點:
1)獨立,邏輯單一,對表做操作
2)業(yè)務(wù)相對比較穩(wěn)定
3)采用ibatis,寫sql的方式
dal層測試方式:
1)壓根兒就不需要測試
2)僅僅配置spring bean,通過日志打印的方式(無法達(dá)到自檢)
3) 自檢方式 -- AbstractTransactionalDataSourceSpringContextTests (高成本,不輕易使用)
需要權(quán)衡
biz層(業(yè)務(wù)層)測試方式--分BO和AO:
BO:(即所謂的Service/Manager)
AO:(一個UseCase對應(yīng)的業(yè)務(wù)流)
隔離 + 設(shè)計 (主要通過代碼演示--見附件)
單元測試的缺點:
專注于單一業(yè)務(wù)測試,銜接點容易出錯
解決方案:
接口輸入輸出明確
集成測試
web層:
集成測試的入口
分享文檔和演示代碼 (ppt是在ubuntu下制作,可能效果并不是很好)
備注:
自己對單元測試了解也比較膚淺,歡迎一起探討