2016-03-16 25 views
-2

我有一個功能,一次保存多個客戶端一個客戶端。我很努力創建和填充參數的IEnumerable與字符串類型的客戶端屬性之一:clientKey,CLIENTNAME和clientTypeCode單元測試功能,需要IEnumerable <IClient>客戶端參數

public void SaveMultipleClients(IEnumerable<IClient> clients, TransactionMetadata metadata) 
    { 
     try 
     { 
      if (clients == null) 
      { 
       throw new ArgumentNullException("clients"); 
      } 

      var abstractClients = clients.ToList(); 
      var concreteClients = new List<Client>(); 
      for (int i = 0; i < abstractClients.Count; i++) 
      { 
       concreteClients.Add(abstractClients[i].ToConcreteType<IClient, Client>()); 
    var cleanClients = this.RemoveErroneousClient(concreteClients[i]); 
       foreach (var client in cleanClients) 
       { 
        this.SaveClient(client, metadata); 
       } 
      } 

      this.SavePending(concreteClients, metadata); 
     } 
     catch (Exception e) 
     { 
      throw e.WrapException(); 
     } 
    } 

在此先感謝您的幫助!

+4

你會得到什麼錯誤?哪裏? –

+0

你有創建IClient接口的具體實現嗎?還是你在嘲笑這個界面?將它們添加到列表中 Andez

+0

如果您的問題是「如何在單元測試中構建客戶端集合」,則可以構建測試ICient實現或使用模擬框架(例如MS假想)在測試中構建一個 –

回答

0

我能夠實例化並填充客戶端列表並將其傳遞給客戶端參數。

var myClientsList = new List<IClient>(); 
     myClientsList.Add(individualClient); 
     myClientsList.Add(individualClient1); 

     var clients = clientDataManager.SaveMultipleClientsOneAtATime(myClientsList, new TransactionMetadata(DateTime.UtcNow)); 
+0

你不喜歡這種方法? – JamesR