題記:新同學分享了“測試驅動”,第一次感覺測試驅動離自己那么近。因此開始嘗試。記下自己的一小點想法。
1.一切從測試開始
不管在寫復雜的代碼,還是簡單的代碼,一切從測試開始。練習成自己編碼的習慣。
自己的做法只能算是“偽測試驅動”,因為還是有詳細的設計,但遵循此做法,對于需求的變更、代碼存在的bug,導致編碼修改的時候,心里是踏實的。
目前自己還不能感覺到對后期的維護會帶來什么樣的結果?
推薦《測試驅動開始》。
2.工具
junit、mockito、emma
junit,這是大家熟知的,學到新點:a。參數化測試 b。private方法測試(反射) c。runwith & Unite,組織測試單元
mockito,輕量的mock工具。測試中很麻煩的一個問題是:環境依賴,比如:web中依賴容器生成request對象。mockito很好的解決大部分問題(static類與private方法未能解決)。
emma,代碼覆蓋率檢查工具,eclipse插件。效果:紅色=未測試;黃色=測試不完整,只是部分邏輯;綠色=測試完整。(注意:不能絕對的追求覆蓋率,一定要記住2/8原則,將主要的精力關注主要的邏輯)。
3.習慣
a。代碼結構,3部分:prepare(包含mock)準備數據、action執行、assert驗證
b。方法命名:被測試方法名$測試目的,如:run$ParameterIsNull
c。測試A類,有兩個方法run()和prepare(),run方法調用prepare,且prepare執行非常耗時間。想要單獨測試run()方法 ?
答案:B extends A,復寫prepare方法(等于是mock prepare方法),單獨的測試run方法邏輯。
d。持續寫測試代碼的習慣