这应该是一个简单的问题,但它让我很难过。我正在尝试设置模拟测试并且返回类型有问题。
private IClassService classService;
var mockClassService = new Mock<IClassService>();
mockClassService.Setup(c => c.GetClasses(It.IsAny<int>()))
.Returns(() => { return Task.FromResult<IClassInfo>(new ClassInfo()); });
classService = mockClassService.Object;
我收到错误“无法从任务&lt; IClassInfo
&gt;转换为任务&lt; IEnumerable<IClassInfo
&gt;&gt;”
我知道我必须返回一个新的IClassInfo列表,但似乎无法理解如何。有人可以给我指点吗?
答案 0 :(得分:2)
只需将return
更改为
return Task.FromResult<IEnumerable<IClassInfo>>(new[] {new ClassInfo()});
如果您想在结果中使用ClassInfo
或
return Task.FromResult<IEnumerable<IClassInfo>>(Enumerable.Empty<IClassInfo>());
表示空集合。根据您的测试要求,您甚至可以将null
放在那里,真正重要的部分是为FromResult
获取正确的类型。