3

在我的测试中,我将数据定义为List<IUser>带有一些记录的数据。

我想设置一个最小起订量的方法GetList,这个方法接收一个bool作为参数。作为回报,我想IUser列出IsValid正确的列表。

我试过这个:

Mock<IUsers> mockUserRepository = new Mock<IUsers>();

mockUserRepository.Setup(mr => mr.GetList(It.IsAny<bool>()))
    .Returns((bool i) => _users.Select(x => x.IsValid == i));

但我得到这个错误:cannot convert List<bool> to List<IUser>

class User : IUser
{
   public bool IsValid { get; set; }
}

interface IUser
{
   bool IsValid { get; set; }
}

interface IUsers
{
    List<IUser> GetList(bool isActive);
}
4

1 回答 1

5

如果要返回 IsValid 为 true 的 IUser 列表,则应返回 的列表IUser,而不是 的集合bool,因此使用Where过滤列表而不是Select.

// returns IEnumerable<boolean>
.Returns((bool i) => _users.Select(x => x.IsValid == i)); 

应该

// returns List<IUser>
.Returns((bool i) => _users.Where(x => x.IsValid == i).ToList());
于 2013-04-04T06:52:39.117 回答