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