2010-02-03 95 views
1

我想對一個.Net類庫程序集中的一個類運行一些NUnit單元測試,該程序設計爲由外部進程託管(在我的控制之外)並加載運行。單元測試與外部主機進程依賴關係

我想測試的類派生自宿主進程中需要實例化的宿主exe文件中定義的類。任何試圖在主進程之外實例化基類派生的嘗試都會失敗併產生異常。

因此,我不能通過加載程序集並實例化類來測試NUnit gui或控制檯測試主機中的類。有沒有人對我如何執行這些測試有任何建議?

回答

2

我可能會將該類分成兩個類 - 一個從外部進程中的類型派生的'outer'類和一個完成所有工作但不從您的任何東西繼承的'inner'類不要控制。

然後,測試內部類,並讓外部類儘可能沒有邏輯。

當您可以以某種方式將您的代碼與依賴關係隔離時,單元測試幾乎總是更容易。

+0

+1這是應用的謙卑對象模式 – 2010-02-03 10:18:12

0

如果你想測試你的源程序和你的程序你有這些外部類方法調用,也許嘲笑整個外部過程將解決你是問題。

你可以設計模擬行爲像你的主機類。

包括:

  • 模擬負載運行時庫(從那些你感興趣的範圍)
  • 都來自特定的方法輸出模擬可能
  • 模擬異常

因爲我不是一位.NET開發人員我並不熟悉細節,但我知道.NET中的嘲笑引擎非常強大。

相關問題