模拟异步使用MOQ获取方法

时间:2015-06-18 08:11:35

标签: c# .net async-await moq

如何摆脱此错误消息:

using System.ComponentModel;

我以为我的Task.FromResult会解决这个问题,但没有......

Error   5   Cannot implicitly convert type 'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<TGB.Business.DTO.SchoolyearDTO>>' to 'System.Collections.Generic.IEnumerable<TGB.Business.DTO.SchoolyearDTO>'. An explicit conversion exists (are you missing a cast?)   

1 个答案:

答案 0 :(得分:3)

GetSchoolyearsAsync是一种异步方法,因此返回Task<IEnumerable<SchoolyearDTO>>而不只是IEnumerable<SchoolyearDTO>。您需要在SetupGet

的类型参数中指定
mockService.SetupGet<Task<IEnumerable<SchoolyearDTO>>>(c => c.GetSchoolyears()).
    Returns(Task.FromResult(Enumerable.Empty<SchoolyearDTO>()));