Moq,Setup() 和 Returns() 之间的类型不匹配

Moq, the types between Setup() and Returns() doesn't match

我有一个接口:

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

这是我为请求模拟 return 的代码:

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);

更新二:

你的方法的问题在于你使用的是这个方法:

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

在您的示例中,使用该重载没有任何意义。只需放下 T。使用 ReturnsAsync.

也可能有用
mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);