2013-11-25 62 views
4

我想編寫單元測試的一些插件方法接受由Visual Studio直接傳遞的COM對象。例如:如何爲Visual Studio插件編寫單元測試?

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 
{ 
    DTE2 d = (DTE2)application; 
    ... 
} 

因爲這些對象不是可序列化的,所以我不能讓單元測試代碼從磁盤讀取它們。

除了創建自定義類的實例來實現相同的COM相關的接口,並具有返回無意義/可疑數據的屬性的實例,有沒有一種方法來測試這種方法可以不實際啓動Visual Studio嗎?

回答

1

我通常很難發現單元測試這些類型的代碼。 這主要是因爲,正如你所說的,與COM相關接口的硬依賴關係。

您可能會抽象出一些依賴關係,並單獨測試這些類型。 查看一些樣品見here

就個人而言,我不會推薦寫這些類型的方法的單元測試。 它更多的是插件的入口點,它基本上是協調調用。你可能沒有得到太多的價值單元測試這種方法。

下面是一些可能使用DTE實例

DTE and Unit Testing

How to Unit Test Visual Studio AddIn interacting with VS DOM

幫助你在編寫測試的方向