Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模拟一个以bool作为参数的方法,并返回一个列表<&燃气轮机;最小起订量_C#_.net_Mocking_Moq - Fatal编程技术网

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

在我的测试中,我将数据定义为一个
列表
,其中包含一些记录

我想设置方法e
GetList
,此方法接收一个
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());