c# - 起订量,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:
解决方案
您的方法的问题是您使用的是这种方法:
IReturnsResult<TMock> Returns<T>(Func<T, TResult> valueFunction);
在您的示例中,使用该重载没有意义。只是下降T
。也可能有用ReturnsAsync
。
mockPeopleService.Setup(ps => ps.GetPeople()).ReturnsAsync(people);
推荐阅读
- javascript - 如何以正确的方式对 MatDialog(Angular Material)进行单元测试?
- web - 通过机器学习算法对网站中的文本和照片进行分类的最简单方法是什么?
- python - 与 CesiumJS 的实时交互
- r - 在一个函数中改变多个具有不同名称的变量...?
- php - 限制 PHP 中包含的函数的范围
- sql - 对设计有什么建议吗?
- java - 如何在java中将实体图(.vpp)转换为数据库或文本文件
- amazon-web-services - 如果我在 AWS 上保留 5 个弹性 IP,我可以获得 500 个免费重映射吗?
- c - 我有这种警告格式“%d”需要“int”类型的参数,但参数 2 的类型为 int *
- c - fgets 似乎“得到” \n 即使在使用 getchar 之后