2011-12-26 102 views
0

我有一個客戶端應用程序,它調用我的WCF服務(安全令牌服務,即精確的STS),它對用戶進行身份驗證。我們有很多應用程序集成在一起,這個特定的WCF服務(STS)反過來調用某些第三方應用程序的其他Web服務,因爲我的STS需要來自第三方Web服務的一些細節才能繼續。如何爲調用其他Web服務的WCF服務編寫單元測試?

現在我想爲我的STS以及我的客戶端應用程序登錄功能編寫單元測試。

我的問題是:

  1. 要我寫單元測試只是爲一些硬編碼值從第三方網絡服務輸入STS的方法呢?如果否,則如果第三方Web服務出現問題,則單元測試將失敗。

  2. 而不是從客戶端應用程序的單元測試中調用我的STS,我可以硬輸入(例如,用戶名和密碼)值嗎?這是正確的方法嗎?

  3. 是否有必要從爲客戶端應用程序編寫的單元測試中實際調用Web服務?如果是,爲什麼?

回答

2

單元測試不跨越處理邊界,集成測試可以做到這一點。你的目的只是測試你的STS的行爲。爲了做到這一點,您需要注入第三方服務的模擬實現。我建議你看起來最起碼。你可能還需要一個DI容器(我使用MS統一,但有很多可供選擇),STS將解析對第三方服務的引用。

  • 構建第三方服務模擬和DI容器註冊過程
  • 實例化STS,無需火起來WCF運行
  • 測試STS和驗證模擬期望