2010-03-17 30 views
0

我正在實施WCF服務的服務合同。針對涉及外部依賴的複雜方法的測試驅動開發

根據TDD,我編寫了一個測試用例,使用硬編碼值傳遞它。

之後,我開始將真正的邏輯放入我的Service實現中。實際的邏輯依賴於3-4個外部服務和數據庫。

我應該怎樣處理我寫的原始測試用例? 如果我保持相同,以便通過測試,它將不得不打電話給其他幾個外部服務。

因此,我一般都有問題,如果我首先使用TDD編寫業務Facade的測試用例,然後添加真實邏輯(如果涉及外部依賴性),那麼我該怎麼辦?

回答

1

利用模擬框架(使用依賴性反轉或只是一個工廠),以便您可以將假依賴關係注入到對象中。然後這些可以返回罐頭響應和/或檢查該類是如何利用依賴關係的。例如,如果您的代碼調用要保存的存儲庫,那麼我們並不真正關心存儲庫實際上保存到持久性存儲庫的業務方法測試,而只是在需要時調用它並返回了一些數據。你真正測試的是你的代碼如何對依賴返回的內容做出反應,或者它是否正確使用 - 但不依賴於實際功能

理想情況下,第一個測試應該代表類/方法的工作方式並返回數據,所以一旦你完成測試仍然有效。