我開始使用TDD,並且想知道添加服務引用來測試我的項目是否是一種不好的做法,或者我只是在依賴於WCF服務的測試中嘲笑假服務。WCF + TDD:爲您的測試項目添加服務引用:錯誤?
回答
是的,將服務引用添加到單元測試項目是一種不好的做法。您可以使用生成的服務合約接口來模擬測試中真正的WCF服務行爲。
另外,如果您正在測試WCF管道,則可以使用測試框架線程作爲主機(MSTEST或其他)。這假定你沒有使用像IIS這樣的東西作爲主機。 – 2010-02-12 22:10:42
與使用服務引用不同,您可以使用服務契約來嘲笑ChannelFactory。
這是什麼東西在TDD附近? TDD意味着您先爲不存在的服務創建測試,然後在編寫失敗的測試時實施服務。 – PositiveGuy 2013-10-25 05:27:02
我認爲我的句子中的關鍵詞是模擬的。你將得到你的服務實現的契約,然後你會使用一個模擬框架(MOQ等)來給你的測試提供一些東西來運行。就像這裏提到的http://fczaja.blogspot.co.uk/2012/10/mocking-wcf-client-with-moq.html。 – Rus 2013-10-25 09:08:56
有一個服務ref可能是一個糟糕的路要走,你可以考慮實現網關模式,例如, IMyFooServiceGateway作爲額外的抽象層。通過這種方式,您可以使應用程序更加鬆散地耦合並獲得一些額外的可測試性(在您測試項目中,您會參考包含IMyFooServiceGateway的分離程序集,並手動創建一個實現IMyFooServiceGateway的模擬程序或使用模擬框架,如Rhino Mocks創建一個給你。
如果這是目標,測試的項目有一個服務引用,你不應該有額外的服務引用添加到測試項目。
當添加一個服務引用對於一個項目,通常爲其生成的代碼包含一個可公開訪問的服務接口,因此測試項目只需要引用目標項目就可以看到這個接口,然後這個接口可以放到你的嘲弄中選擇圖書館或手動嘲笑。
值得注意的是,生成的接口並不一定遵循接口的典型「IFoo」命名約定,因此它不是很明顯。
- 1. 錯誤時添加服務引用WCF服務類型的ObservableCollection
- 2. 添加WCF服務引用時出錯?
- 3. 爲wcf服務添加服務引用時出錯
- 4. 添加項目引用防止Windows服務啓動 - 錯誤1053
- 5. VS 2010 - 添加服務引用錯誤
- 6. 錯誤415而測試我WCF服務
- 7. 添加WCF引用錯誤
- 8. 將WCF服務引用添加到多個項目
- 9. 爲什麼添加服務引用導致Microsoft.Owin.Security引用錯誤?
- 10. 添加WCF服務到ASP.NET MVC項目
- 11. 將WCF服務添加到項目
- 12. 添加對WCF服務的引用給出了錯誤
- 13. 簡單的WCF REST客戶端 - 添加服務引用錯誤?
- 14. 爲WCF服務添加Silverlight應用程序的服務引用
- 15. 在同一個項目中添加對WCF服務的服務引用
- 16. 如何測試wcf rest服務vs「單元測試項目」?
- 17. 動態添加WCF服務的引用
- 18. WCF無法添加服務錯誤
- 19. 當您添加一個wcf服務引用時,如何在另一個項目下生成wcf配置?
- 20. WCF不使用添加服務引用
- 21. 如何在Eclipse中爲WCF服務「添加服務引用」?
- 22. 使用WCF服務調試Silverlight項目
- 23. WCF:如何做 「添加服務引用」 到SSL服務(遇到錯誤)
- 24. 測試WCF服務
- 25. WCF服務測試
- 26. 添加WCF服務引用打破
- 27. 在同一個項目中添加對服務的引用
- 28. 將服務引用添加到使用Net.TCP的WCF服務
- 29. 向Silverlight項目中的WCF服務添加服務引用默認情況下爲DataMembers而不是SOAPSerilaization的XmlSerialization
- 30. 嘗試將Web服務引用添加到項目時的HTTP狀態400
有沒有任何文件詳細說明這一點? – 2010-02-12 18:50:51
我不明白。你想TDD你的服務?那麼這不是TDD,你應該創建TDD方法來創建你的實際服務實現(服務類!) – PositiveGuy 2013-10-25 05:25:36
,並且你應該總是嘲笑一個Web服務,而不是使用代理引用。 – PositiveGuy 2013-10-25 05:26:00