C# Can';t从任务转换<;internface>;任务<;IEnumerable<;界面>&燃气轮机;
这应该是一个简单的问题,但它难住了我。我正在尝试设置模拟测试,但返回类型有问题C# Can';t从任务转换<;internface>;任务<;IEnumerable<;界面>&燃气轮机;,c#,moq,C#,Moq,这应该是一个简单的问题,但它难住了我。我正在尝试设置模拟测试,但返回类型有问题 private IClassService classService; var mockClassService = new Mock<IClassService>(); mockClassService.Setup(c => c.GetClasses(It.IsAny<int>())) .Returns(() => { return Task.FromResult<
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;
私有IClassService类服务;
var mockClassService=new Mock();
mockClassService.Setup(c=>c.GetClasses(It.IsAny()))
.Returns(()=>{return Task.FromResult(new ClassInfo());});
classService=mockClassService.Object;
我收到错误“无法从一个任务转换到另一个任务”
我知道我必须返回一个新的IClassInfo列表,但似乎不知道如何返回。谁能给我指点方向吗?只要把
返回键改为
return Task.FromResult<IEnumerable<IClassInfo>>(new[] {new ClassInfo()});
对于空集合。您甚至可以将null
放入其中,这取决于您的测试调用的内容,真正重要的部分是从result
获取的正确类型,只需将返回值更改为
return Task.FromResult<IEnumerable<IClassInfo>>(new[] {new ClassInfo()});
对于空集合。根据测试调用的内容,您甚至可以将null
放在其中,真正重要的部分是从result
new[]{new ClassInfo()}获取的正确类型
将用作IEnumerable
也可以使用ReturnsAsync
来代替任务。FromResult
不需要。new[]{new ClassInfo()}
将用作IEnumerable
也可以使用ReturnsAsync
来代替任务。FromResult
不需要。谢谢!这正是我想要的。我不知道我怎么会错过这个。谢谢!这正是我想要的。我不知道我怎么会错过这个。