在我的测试中,我将数据定义为List<IUser>
,其中包含一些记录。
我想设置moq方法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);
}
答案 0 :(得分:5)
如果你想返回IsValid为真的IUser列表,当你应该返回IUser
的列表而不是bool
的集合时,请使用{{ 1}}过滤列表而不是Where
。
Select
应该是
// returns IEnumerable<boolean>
.Returns((bool i) => _users.Select(x => x.IsValid == i));