2014-01-22 133 views
0

我有一個WCF RESTful服務,我想集成測試,因此需要在測試中本地創建一個服務實例,並引用我可以調用的客戶端通道。我能做到這一點,但是我使用只會調用服務的默認參數的構造函數如下自定義WCF Web服務的實例

_serviceHost = new WebServiceHost(typeof(UserService), baseAddress); 
var binding = new WebHttpBinding(); 
_serviceHost.AddServiceEndpoint(typeof(Interface.IUserService), binding, address.Uri);    
_serviceHost.Open(); 

在我UserService類的代碼,我想注入的依賴到它的數據倉庫,爲使

public UserService(IUserDataRepository userRepository) 
     { 
      _userRepository = userRepository; 
     } 

我該如何調整第一批代碼,以便我可以使用在測試類中創建(模擬)的IDataRepository對象創建和自我託管我的WCF REST服務?

回答

0

嗯,我認爲你可以使用與生產環境相同的方法。我可能是錯的,但你必須已經有你的自定義ServiceHost和ServiceHostFactory。如果沒有,請看看這篇文章Using Instance Provider and ServiceHostFactory to Construct the Service。您想要通讀步驟1-3。您將需要從WebServiceHost派生來實現您自己的一個。然後你的代碼將如下所示:

_serviceHost = new YourCustomServiceHost(typeof(UserService), baseAddress); 

希望它有幫助!