2009-04-20 100 views
1

在單元測試,方法或場景中測試什麼?在單元測試,方法或場景中測試什麼?

如果測試每種方法,那麼最小的測試用例設置是必需的。

如果測試調用其他方法的方法,那麼測試用例所需的設置是巨大的。如果單個方法的單元測試已經存在,那麼爲什麼要編寫這種使用它們的方法呢?

但是它也有一點功能,應該測試。代碼覆蓋工具也會投訴覆蓋率。

請提供您的實際意見。

+0

它不是那個問題的重複,它不回答我想要的。請閱讀這個問題。也許主題行需要重新表述。 – 2009-04-20 09:42:34

回答

3

如果測試它調用其他方法 然後爲 測試用例要求的設置的方法是巨大的。如果單元測試爲 單個方法已經是 那麼爲什麼要寫這個 方法正在使用它們?

因爲該方法可能會調用帶有錯誤參數或錯誤序列的底層方法,或者使用返回值做錯誤的事情。

根據我的經驗,自包含方法中的錯誤潛力通常比它們與這種「膠水代碼」之間的交互相比要小。

「經典」單元測試,您完全測試每個類的行爲是一個很好的概念,但實際上,這種情況並不是那麼常見,也不是很有用。這取決於設計模塊化代碼和(可隱含)可測試性需要多少注意力,但是不可能爲所有事情做到。

2

您可以對每個可能的執行路徑使用一個測試用例進行單元測試。

的單元測試的典型結構是排列,法,斷言(三A的):

  • 安排 - 創造您想要測試的情況下,環境(這可以在套房安裝完成或在TestCase的,或兩者)
  • 法案 - 測試用例調用
  • 斷言測試方法 - 驗證測試方法沒有什麼是應該做的

過多的設置應該是這表明你應該看看你的設計,例如,你的班級可能太大,或者做了太多事情。 Excessive setup是一種反模式。

您可以使用mock objects隔離您正在測試的類。

2

頭號單元測試的規則是:

只測試一兩件事一次!

這意味着:你甚至不測試一個方法,你在一個條件下測試一個方法的一個方面。所以你爲同樣的方法提出了幾個測試。

隔離是良好的單元測試的關鍵。你需要嘲笑你的依賴(例如使用RhinoMocks)。一開始看起來更加複雜,但從長遠來看,管理和維護要容易得多。在測試中只測試少量代碼,使得測試儘可能平凡,並且您將擁有可維護的測試。

相關問題