2011-03-20 112 views
3

我試圖測試我的應用程序,該應用程序使用Microsoft Exchange Web Service DLL訪問Exchange Server。試圖模擬Microsoft Exchange Web服務

我想我的應用程序從需要隔離在我的測試中實際的Exchange服務器,我意識到我不能嘲笑交易所DLL ...

的另一個問題是,我不能改變的操作代碼,它不使用接口或適配器來訪問Exchange Web服務DLL,因此我不能簡單地存根它...

在我的研究中,我發現了微軟鼴鼠框架,它允許我鼴鼠和替換任何方法(甚至構造函數)與我自己的代表。但是,我發現在應用程序代碼中,我們使用的是內部Microsoft數據類型(例如EmailMessage),這些數據類型不允許如何創建或更改它們。

有沒有人有什麼建議,我可以在這種情況下做什麼?

謝謝。

回答

2

如果我你在哪裏我會嘗試隱藏交換後面的電子郵件服務facade並將所有直接引用交換的代碼替換爲對該外觀的調用。

Mockin的門面比嘲笑交換本身要容易得多。

作爲一個副作用,如果客戶決定使用其他電子郵件系統,您只需重新實現外觀而不是更改整個應用程序。

+0

正如我所說,我不能改變代碼... – 2011-03-20 14:41:56

+1

@Yiftach - 如果你不能改變代碼,那麼它不是你的應用程序,並孤立它的希望是不現實的。如果你的職位稱「測試員」,你可能想看看[Typemock Isolator](http://www.typemock.com/typemock-isolator-product3/)。 – TrueWill 2011-03-20 16:09:43

+0

在這種情況下,無論如何,您都無法使用外觀來處理問題。您不能將外觀傳遞給綁定調用,因爲它不是鍵入的ExchangeService。使用外觀並傳遞給ExchangeService的呼叫只會讓您在中途停下來。 – 2013-10-27 22:00:18