单元测试一个采用IEnumerable <iclient> clients参数的函数

时间:2016-03-16 13:40:52

标签: c# unit-testing integration-testing

我有一个函数可以一次为一个客户端保存多个客户端。我正在努力使用字符串类型的客户端属性创建和填充其中一个参数IEnumerable:clientKey,clientName和clientTypeCode

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();
        }
    }

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我能够实例化并填充客户列表并将其传递给clients参数。

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

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