模拟一个接受对象列表的函数

时间:2014-09-08 06:36:11

标签: c# asp.net .net mocking tdd

我想为具有以下签名的方法编写测试

public List<CrateRecallTaskWithComms> PopulateCrateRecallTask(List<Task> listOfBaseTasks)
{
    var crateRecallTasksWithComms = new List<CrateRecallTaskWithComms>();
    foreach (var task in listOfBaseTasks)
    {
        // do stuff

        var crateRecallTasksWithComms = new CrateRecallTaskWithComms()
        {
            // populate properties
        }

        // add to list
        crateRecallTasksWithComms.Add(crateRecallTasksWithComms);
    }

    // return populated list
    return crateRecallTasksWithComms;
}

我正在使用Mock库来模拟这个方法,但是我无法让它工作!这是我到目前为止的测试代码:

_crateRecallService = new Mock<CrateRecallsService>();
_crateRecallService.Setup(m => m.PopulateCrateRecallTask(It.IsAny<List<Task>>()).Returns());

我在It.IsAny<>位收到错误,错误显示:

  

参数类型   System.Collections.Generic.List<Zenos.Intranet.Domain.Tasks.Task>是   不可分配给参数类型   System.Collections.Generic.List<Task>

error

我做错了什么?

1 个答案:

答案 0 :(得分:1)

似乎有两个名为Task的类。

我认为您的方法需要System.Task列表,但您需要使用Zenos.Intranet.Domain.Tasks.Task列表进行设置。您可能缺少using指令来消除两种类型之间的歧义..