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(..)
扩展方法将过滤项目并提供所需的项目