2017-08-18 95 views
0

這應該是一個簡單的問題,但它困擾着我。我試圖設置一個模擬測試,並且返回類型有問題。無法從任務<internface>轉換爲任務<IEnumerable <Interface>>

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; 

我收到錯誤「無法從任務< IClassInfo>轉換成任務< IEnumerable<IClassInfo >>」

我知道我必須返回IClassInfo的一個新的列表,但似乎無法總結我的頭腦如何。有人能給我一些指導嗎?

+1

'new [] {new ClassInfo()}'將作爲'IEnumerable ' – juharr

回答

1

只要改變return

return Task.FromResult<IEnumerable<IClassInfo>>(new[] {new ClassInfo()}); 
如果你想在結果中的一個 ClassInfo

return Task.FromResult<IEnumerable<IClassInfo>>(Enumerable.Empty<IClassInfo>()); 

一個空的集合

。你甚至可以把null放在那裏,這取決於你的測試要求,真正重要的部分是獲得FromResult的正確類型。

+0

謝謝!這正是我期待的。我不知道我是如何錯過這一點的。 – GLCoder

相關問題