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);
我有一个接口:
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);