C# Lambda函数导致编译器错误,参数为0,异常为1或更多

C# Lambda函数导致编译器错误,参数为0,异常为1或更多,c#,lambda,moq,xunit,stub,C#,Lambda,Moq,Xunit,Stub,我在带有Moq的C#.NET核心环境中使用lambda函数。更具体地说,我在如下设置方法中使用它: MockObject.Setup(o => o.GetList()).Returns<List<DifferentClass>>(() => Task.FromExisting(existingList)); 堆栈跟踪引用同一行代码 下面是示例代码: 测试: public class UnitTest1 { static readonly Mock&l

我在带有Moq的C#.NET核心环境中使用lambda函数。更具体地说,我在如下设置方法中使用它:

MockObject.Setup(o => o.GetList()).Returns<List<DifferentClass>>(() => Task.FromExisting(existingList));
堆栈跟踪引用同一行代码

下面是示例代码:

测试:

public class UnitTest1
{
    static readonly Mock<IMyClass> MockObject;

    static UnitTest1()
    {
        MockObject = new Mock<IMyClass>();
        var existingList = new List<DifferentClass>();
        // Line causing exception below
        MockObject.Setup(o => o.GetList()).Returns<List<DifferentClass>>(() => Task.FromExisting(existingList));
    }

    // Tests go here...
    [Fact]
    Test1()
    {
        //...
    }
}
公共类UnitTest1
{
静态只读模拟对象;
静态UnitTest1()
{
MockObject=newmock();
var existingList=新列表();
//导致以下异常的行
MockObject.Setup(o=>o.GetList())。返回(()=>Task.fromExistingList));
}
//测试在这里进行。。。
[事实]
Test1()
{
//...
}
}
这是模拟类IMyClass:

public interface IMyClass
{
    Task<List<DifferentClass>> GetList();
}
公共接口IMyClass
{
任务GetList();
}

我的两个选择似乎是抛出异常或编译失败。我不确定我能在这里做什么。如果我缺少什么,请告诉我。

给定模拟接口的定义,只需调用
.ReturnsAsync(existingList)和类型将被推断

static UnitTest1()
{
    MockObject = new Mock<IMyClass>();
    var existingList = new List<DifferentClass>();
    MockObject
        .Setup(o => o.GetList())
        .ReturnsAsync(existingList);
}
static UnitTest1()
{
MockObject=newmock();
var existingList=新列表();
模拟对象
.Setup(o=>o.GetList())
.ReturnsAsync(现有列表);
}
public class UnitTest1
{
    static readonly Mock<IMyClass> MockObject;

    static UnitTest1()
    {
        MockObject = new Mock<IMyClass>();
        var existingList = new List<DifferentClass>();
        // Line causing exception below
        MockObject.Setup(o => o.GetList()).Returns<List<DifferentClass>>(() => Task.FromExisting(existingList));
    }

    // Tests go here...
    [Fact]
    Test1()
    {
        //...
    }
}
public interface IMyClass
{
    Task<List<DifferentClass>> GetList();
}
static UnitTest1()
{
    MockObject = new Mock<IMyClass>();
    var existingList = new List<DifferentClass>();
    MockObject
        .Setup(o => o.GetList())
        .ReturnsAsync(existingList);
}