2011-11-01 238 views
26

在Visual Studio中使用了創建單元測試工具,顯然它試圖實例化我的抽象類。我應該嘗試單元測試Visual Studio試圖讓我這樣做,或者我應該創建一個模擬類來實例化,或者我應該只測試使用這個抽象類的方法?如何對抽象類進行單元測試

謝謝。

回答

44

如果這個抽象類有方法值得測試,那麼你應該測試它們。您總是可以爲測試創建子類(並將其命名爲MyAbstractClassTesting)並測試這個新的具體類。

+0

它'內部protected' :) – sotn

16

有視兩個相對點:

  • 不要測試抽象類本身,
  • 抽象類應測試從它繼承測試具體的類,以及因爲提供了一些內置在所有共享邏輯繼承類的,所以你只是測試的基礎邏輯抽象類一旦

我更喜歡使用RhinoMocks PartialMock功能第二個選項(目前)和測試抽象類,它允許我創建一個抽象的模擬類。

5
  1. 只要測試執行類。

  2. 您總是可以創建一個特定的測試實現,不添加額外的功能。

  3. 聽試驗。用嘲諷的工具,使用魔法,讓測試抽象類和私有方法等是測試代碼味道如果