C# 单元测试采用IEnumerableclients参数的函数

C# 单元测试采用IEnumerableclients参数的函数,c#,unit-testing,integration-testing,C#,Unit Testing,Integration Testing,我有一个功能,可以一次保存多个客户端和一个客户端。我正在努力用字符串类型的客户端属性创建和填充参数IEnumerable之一:clientKey、clientName和clientTypeCode public void SaveMultipleClients(IEnumerable<IClient> clients, TransactionMetadata metadata) { try { if (clients =

我有一个功能,可以一次保存多个客户端和一个客户端。我正在努力用字符串类型的客户端属性创建和填充参数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();
        }
    }

提前感谢您的帮助

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

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

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

你有什么错误?在哪里呢?您正在创建的某个地方有一个IClient接口的具体实现?还是你在模仿这个界面?将它们添加到列表如果您的问题是“如何在单元测试中构建客户机集合”,您可以构建一个测试工具实现,或者使用模拟框架MS fakes(例如)在testvc 74中构建一个。是的,我想在我的单元测试中构建一个客户机集合。你能给出代码示例吗?你不喜欢这种方法吗?