2010-06-08 70 views
2

所以我有一個類引用了一個引用另一個類的Web服務的類。當我嘗試單元測試引用Web服務的類時,我在這裏做了什麼錯誤

因此,我學習如何使用部分類創建接口。

我通過構造函數注入web服務。

然後我的單元測試失敗,因爲我正在創建班級第二級的實際Web服務。所以我最終修改所有三個類,通過構造下通過Web服務......卻高興不起來:-(放棄了....

我應該在這種情況下做什麼?

+2

1:發佈具體代碼2.重新設計你的類? – 2010-06-08 15:17:11

+0

我使用了部分類來接口的Web服務...所以我使用的接口...真正的問題在這裏不得不通過我的Web服務通過3層的類... – zachary 2010-06-08 19:22:00

+0

我也使用Mocks是爲什麼我需要使用部分類來創建界面呢... – zachary 2010-06-08 19:22:36

回答

4

你應該使用接口而不是部分類,你的構造函數比期望接口而不是具體的實現在測試中,而不是創建真正的類,使用其中一個模擬框架創建「模擬」,例如我使用Rhino Mocks,您可以在他們的文檔頁面上找到大量示例: http://ayende.com/wiki/Rhino+Mocks+Documentation.ashx

+1

Bang on。你需要一個模擬框架才能正確地做到這一點。 – 2010-06-08 15:51:33

1

與Web服務交互的層應設計爲具有交互面對。這應該被注入(通過ctor/property/method..some其他方式也存在)到其他層。生產代碼將使用實際的Web服務實現。測試代碼將使用模擬對象。如果您發佈一些代碼,您將得到更好的答案。

相關問題