石建 | Fat Mind

          關于單元測試

          題記:新同學分享了“測試驅動”,第一次感覺測試驅動離自己那么近。因此開始嘗試。記下自己的一小點想法。

          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。持續寫測試代碼的習慣



            

          posted on 2010-11-02 21:31 石建 | Fat Mind 閱讀(247) 評論(0)  編輯  收藏 所屬分類: 一點理解

          導航

          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          What 、How、Why,從細節中尋找不斷的成長點
          主站蜘蛛池模板: 徐州市| 弋阳县| 竹山县| 临湘市| 黄石市| 河西区| 突泉县| 中山市| 宜川县| 农安县| 巴中市| 得荣县| 屯昌县| 从江县| 拉萨市| 兴海县| 三江| 青海省| 司法| 玉林市| 通州市| 汉阴县| 贵阳市| 大余县| 芒康县| 泽州县| 海林市| 孟连| 寻乌县| 天柱县| 镇赉县| 长沙县| 江北区| 商洛市| 高尔夫| 称多县| 镇康县| 磴口县| 北辰区| 定边县| 石门县|