2012-05-03 140 views
4

這讓我瘋狂。我有一個擴展,如果出現錯誤,我們會使用它來更改請求的內容響應。基本上,如果一切正常,它會像平常一樣序列化爲JSON,但是如果我們得到未處理的異常,我們會根據不同的對象進行序列化。單元測試WCF行爲擴展

我們需要單位測試,但我不知道如何編寫它們。驗證它的工作方式是圍繞StatusCode,錯誤消息實例和響應的ContentType進行的。

要修改響應返回,我使用WebOperationContext靜態類。我已經看到了嘲笑這個的例子,但是似乎我必須硬編碼特殊的邏輯,然後開始滲透到我不想要的實際代碼中。

單元測試WCF行爲擴展的一些最佳方法是什麼?

回答

0

我有類似的情況,無法模擬WCF(至少使用Moq),主要是因爲大多數類都是密封的或有內部構造函數。

我所做的是讓我的行爲只是套用IParameterInspectorIClientMessageInspector(在我的情況,我需要兩個),把我所有的邏輯無論是在AfterCallBeforeCall,或者哪一個你所需要的,這取決於檢查類型。

這樣我就可以測試我關心的所有邏輯。 實際的WCF行爲仍然未經測試,但它真正做的只是添加兩個檢查器而沒有其他。