首页 > 解决方案 > 起订量,Setup() 和 Returns() 之间的类型不匹配

问题描述

我有一个界面:

public interface IPeopleService
{
    Task<List<Person>> GetPeople();
}

这是我模拟请求返回的代码:

List<Person> people = ...;
var mockPeopleService = new Mock<IPeopleService>();
 mockPeopleService.Setup(ps => ps.GetPeople()).Returns<Task<List<Person>>>(Task.FromResult(people));

无论我做了什么,错误仍然存​​在.....

在此处输入图像描述

尝试使用 ReturnsAsync() 后,它向我显示此错误:

mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);

在此处输入图像描述

更新 2:

在此处输入图像描述

标签: c#.netasp.net-coremoq

解决方案


您的方法的问题是您使用的是这种方法:

IReturnsResult<TMock> Returns<T>(Func<T, TResult> valueFunction);

在您的示例中,使用该重载没有意义。只是下降T。也可能有用ReturnsAsync

mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);

推荐阅读