C# 模拟一个以bool作为参数的方法,并返回一个列表<&燃气轮机;最小起订量
在我的测试中,我将数据定义为一个C# 模拟一个以bool作为参数的方法,并返回一个列表<&燃气轮机;最小起订量,c#,.net,mocking,moq,C#,.net,Mocking,Moq,在我的测试中,我将数据定义为一个列表,其中包含一些记录 我想设置方法eGetList,此方法接收一个bool作为参数。我想返回IUser列表,其中IsValid为true 我试过这个: Mock<IUsers> mockUserRepository = new Mock<IUsers>(); mockUserRepository.Setup(mr => mr.GetList(It.IsAny<bool>())) .Returns((bool i
列表
,其中包含一些记录
我想设置方法eGetList
,此方法接收一个bool
作为参数。我想返回IUser
列表,其中IsValid
为true
我试过这个:
Mock<IUsers> mockUserRepository = new Mock<IUsers>();
mockUserRepository.Setup(mr => mr.GetList(It.IsAny<bool>()))
.Returns((bool i) => _users.Select(x => x.IsValid == i));
Mock mockUserRepository=new Mock();
mockUserRepository.Setup(mr=>mr.GetList(It.IsAny()))
.Returns((bool i)=>\u users.Select(x=>x.IsValid==i));
但我得到了这个错误:无法将列表转换为列表
class用户:IUser
{
公共bool有效{get;set;}
}
接口IUser
{
bool是有效的{get;set;}
}
接口用户
{
List GetList(bool isActive);
}
如果要返回IsValid为true的IUser列表,则应返回IUser
列表,而不是bool
的集合,因此使用where
过滤列表,而不是选择
// returns IEnumerable<boolean>
.Returns((bool i) => _users.Select(x => x.IsValid == i));
//返回IEnumerable
.Returns((bool i)=>\u users.Select(x=>x.IsValid==i));
应该是
// returns List<IUser>
.Returns((bool i) => _users.Where(x => x.IsValid == i).ToList());
//返回列表
.Returns((bool i)=>_users.Where(x=>x.IsValid==i.ToList());
我已删除了不相关的代码。。。请随时回复。
// returns List<IUser>
.Returns((bool i) => _users.Where(x => x.IsValid == i).ToList());