• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測試中單元測試VS私有方法

    發表于:2010-06-25來源:作者:點擊數: 標簽:軟件測試單元
    軟件測試中 單元測試 VS私有方法 軟件測試 前幾天,Naresh Jain在Managed Chaos上發了篇博客,總結了一些測試中的bad smell。例如: ● 一個方法中有太多test case——被測試的方法做了太多事情。 ● 太多的setup/teardown——表示被測試類的耦合性太高。 ●

             軟件測試中單元測試VS私有方法  軟件測試

      前幾天,Naresh Jain在Managed Chaos上發了篇博客,總結了一些測試中的bad smell。例如:

      ● 一個方法中有太多test case——被測試的方法做了太多事情。

      ● 太多的setup/teardown——表示被測試類的耦合性太高。

      ● 改變一個地方,多處測試受影響——也許是測試的設計問題,也許是實現代碼中有過多依賴。

      ● 測試上下文中有太多依賴——設計中的耦合性太高。

      ● 測試運行速度緩慢——表示你的單元測試也許在使用外部系統,例如網絡、數據庫、文件系統等等。通常也意味著被測試類有過多的職責。

      ……

      里面還有一條:

      為了測試的目的,把成員變量或者方法的訪問權限變成protected或者public——可能是因為測試代碼跟被測試的代碼耦合太高,也可能是本來私有的東西有太多行為,這種情況下應該考慮把它抽出來作為獨立的對象。

      怎么為私有方法寫單元測試?這個難題由來已久了。

      有人會選擇跳過私有方法,有人會選擇去掉private限定符;跳過私有方法自然不是良策,但提升訪問權限也會破壞封裝,在Naresh Jain看來也算得上是bad smell,那怎么解決才好?

      Naresh Jain對此語焉不詳,不過還好,Agile Tips在08年11月有一篇文章介紹了怎么測試私有方法。

      文末作者說道:

      應該為私有方法添加測試么?

      我的答案是,在成功的用了TDD或者測試驅動重構(Test-Driven Refactoring)以后,你的代碼中就不會出現針對私有方法的測試。

      如果你用TDD編寫全新的代碼,在沒有測試之前是沒有功能的。私有方法是到了重構那一步的最后才會出現。把代碼轉移到私有方法中的這個過程,已經被先前寫過的測試覆蓋到了。所以,如果你成功了用了TDD,代碼中就不會出現針對私有方法的測試。

      如果你在改善遺留代碼,你就該使用測試驅動重構。這樣的話,可能會臨時針對私有方法寫一些測試。但是,隨著測試覆蓋率的增加,那些public方法的測試會覆蓋到所有的路徑,也包括了私有方法的調用。所以,你也不再需要測試私有方法。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>