繁体   English   中英

无法从“IEnumerable”转换为“IEnumerable”

[英]cannot convert from 'IEnumerable' to 'IEnumerable

[TestMethod]
public async void  Select_getallTask()
{

    //Arrange
    IEnumerable<TaskToDo> list = new List<TaskToDo>();
                


    var mockrepo = new Mock<ITaskToDoRepository>();
      mockrepo.Setup(x => x.GetTasks()).Returns(list);

    //Act

    var data = mockrepo.Object.GetTasks();

    //Assert
    Assert.AreEqual(data, list);
}

这给了我错误

mockrepo.Setup(x => x.GetTasks()).Returns(list);

错误:

Severity    Code    Description Project File    Line    Suppression State
Error   CS1503  Argument 1: cannot convert from
'System.Collections.Generic.IEnumerable<ToDoApp.Models.TaskToDo>' to
'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<ToDoApp.Models.TaskToDo>>'  UnitTest_ToDoApp    J:\Source\RealApp\UnitTest_ToDoApp\ListTest.cs  97  Active

回购是

public interface ITaskToDoRepository
{
    Task<IEnumerable<TaskToDo>> GetTasks();
    TaskToDo GetTasksById(Guid Id);      

}

我希望你能理解这个问题。 谢谢

您应该在设置中使用ReturnsAsync ,如下所示

var mockrepo = new Mock<ITaskToDoRepository>();
                  mockrepo.Setup(x => x.GetTasks()).ReturnsAsync(list);

因为您的方法GetTasksTask<>返回类型的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM