Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用多个参数的Moq ReturnsAsync_C#_.net_Moq - Fatal编程技术网

C# 使用多个参数的Moq ReturnsAsync

C# 使用多个参数的Moq ReturnsAsync,c#,.net,moq,C#,.net,Moq,我已经成功地使用了Moq的ReturnsAsync函数一段时间,但是遇到了以下问题。在向lambda表达式添加参数时,我总是返回null…这次当我添加所有参数时,我得到了可怕的“无法将lambda表达式转换为类型…”是否有明显的错误?Setup方法解析得非常好…只是不ReturnsAsync 可以定义的参数数量是否有限制?我试过了,注意到它在第15个参数之后就消失了 var buildServiceMock=new Mock(); buildServiceMock .Setup(bsm=>bsm

我已经成功地使用了Moq的
ReturnsAsync
函数一段时间,但是遇到了以下问题。在向lambda表达式添加参数时,我总是返回null…这次当我添加所有参数时,我得到了可怕的“无法将lambda表达式转换为类型…”是否有明显的错误?
Setup
方法解析得非常好…只是不
ReturnsAsync

可以定义的参数数量是否有限制?我试过了,注意到它在第15个参数之后就消失了

var buildServiceMock=new Mock();
buildServiceMock
.Setup(bsm=>bsm.QueryBuildsAsync(
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny())
.ReturnsAsync((
BuildType BuildType,
字符串buildNumber,
DateTime?minDateTime,
DateTime?maxDateTime,
请求的字符串,
BuildReason?reasonFilter,
BuildStatus?状态过滤器,
BuildResult?resultFilter,
IEnumerable标签,
IEnumerable属性,
int?top,
int?maxBuildsPerDefinition,
QueryDeletedOption?deletedFilter,
建筑查询器?查询器,
我,
IEnumerable buildId,
字符串标签,
CancellationToken CancellationToken)=>
{
返回null;
});

我发现问题的根源在于

publicstaticireturnsresult ReturnsAsync(此ireturnsmock,Func valueFunction),其中TMock:class;
ReturnsAsync at max只允许您在lambda表达式的签名中使用最多15个参数

但是,我只需要ReturnsAsync委托方法中的一个IEnumerable,所以我很好…我错了,我认为我必须为“Setup”调用中模拟的方法中的每个人参数指定一个参数…现在我发现您不需要这样做,我可以开始了。:)

这个怎么样: