Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Linq NSubstitue mock IEnumerable Where()方法_Linq_Unit Testing_Mocking_Nsubstitute - Fatal编程技术网

Linq NSubstitue mock IEnumerable Where()方法

Linq NSubstitue mock IEnumerable Where()方法,linq,unit-testing,mocking,nsubstitute,Linq,Unit Testing,Mocking,Nsubstitute,我有以下代码: 45 var listMock=Substitute.For(); 46 listMock.Where(Arg.Any())返回(某物) 但我得到了以下错误: System.ArgumentNullException:值不能为null。 参数名称:谓词 在System.Linq.Enumerable.Where[TSource](IEnumerable'1源,Func'2谓词) 在第46行 但是,不接受func参数的方法(如Any())不会失败 我的问题是: 如果可能的话,如何

我有以下代码:

45 var listMock=Substitute.For();
46 listMock.Where(Arg.Any())返回(某物)

但我得到了以下错误:

System.ArgumentNullException
:值不能为null。 参数名称:谓词 在
System.Linq.Enumerable.Where[TSource](IEnumerable'1源,Func'2谓词)
在第46行

但是,不接受
func
参数的方法(如Any())不会失败

我的问题是:

  • 如果可能的话,如何避免这个错误
  • 如果不是,如何模拟可枚举扩展方法

NSubstitute不能模拟扩展方法,如
Enumerable.Where
。对于
列表
的情况,我建议不要模仿它。使用真实列表并添加测试所需的项目,以便真实
Where(..)
扩展方法将过滤项目并提供所需的项目