2009-09-02 216 views
1

我有一個程序集,它包裝了外部實時Web服務的功能。測試Web服務封裝

如何有效測試此Web服務。我應該創建一個Web服務的存根,還是應該編寫用於向Web服務發送和接收實時數據的測試?

我用第二種方法的問題是,如果我發送並期望來自Web服務的真實數據,那麼我不能每次都聲明結果,因爲它們可能會改變!

回答

1

如果包裝僅將調用轉發到沒有條件邏輯的Web服務,那麼在創建不通過真實Web服務的測試時沒有意義。在這種情況下,您應該爲每個操作創建一個測試,應該只測試訪問Web服務的能力並返回而不會出現意外錯誤。返回的數據真的沒有關係。這是您的包裝器和Web服務之間的集成測試。

如果您的包裝包含條件邏輯,那麼創建測試可以執行所有路徑可能是一個好主意。如果您不依賴真實的Web服務,那麼測試這些案例會更容易。

爲了測試客戶端代碼(調用包裝器的代碼),應該存根包裝器或存根Web服務。這將爲您提供所需的控制,以確保客戶始終在給定相同輸入的情況下獲得相同的輸出。