石建 | 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,從細節中尋找不斷的成長點
          主站蜘蛛池模板: 南宁市| 朝阳区| 山东省| 广水市| 哈密市| 茌平县| 靖江市| 花莲市| 资兴市| 沙河市| 江孜县| 临西县| 平阴县| 宁强县| 贵州省| 迁安市| 司法| 新绛县| 高唐县| 鄂托克前旗| 云南省| 内江市| 栾川县| 汾西县| 融水| 县级市| 临邑县| 正定县| 渭源县| 商丘市| 广宗县| 西林县| 桐梓县| 太仓市| 凉山| 汪清县| 济源市| 江达县| 时尚| 宜春市| 沾化县|