我有一个界面:
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));
无论我做了什么,错误仍然存在.....
尝试使用ReturnAsync()后,会向我显示此错误:
mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);
更新2:
答案 0 :(得分:4)
您的方法存在的问题是您正在使用此方法:
IReturnsResult<TMock> Returns<T>(Func<T, TResult> valueFunction);
在您的示例中,使用该重载没有任何意义。只需放下T
。使用ReturnsAsync
也可能有用。
mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);