单元测试IQueryable

sug*_*982 6 .net generics collections unit-testing iqueryable

我正在尝试为一个采用IQueryable集合的方法编写单元测试.

在将其传递给测试方法之前,我应该如何在单元测试中实例化集合?这是我测试中的默认代码

IQueryable<Item> Items = null; // TODO: Initialize to an appropriate value
Run Code Online (Sandbox Code Playgroud)

这就是我试着写的东西

IQueryable<Item> Items = new IQueryable<Item>; // TODO: Initialize to an appropriate value
Run Code Online (Sandbox Code Playgroud)

我在做一个男生错误吗?

Mar*_*ell 17

好吧,您可以.AsQueryable()在任何类型的集合/列表/数组上使用,但是IMO您无法对其进行单元测试,因为不同的查询提供程序支持不同的选项/方法.您只能对此进行集成测试.任何单元测试(尤其是使用对象的测试)都不会对您的系统产生什么影响.

  • @ suggy1982不,我的意思是你会用你的虚拟数据创建一个数组/列表/什么,并使用`theList.AsQueryable()`这将工作.但是,我再说一遍:我们的目标不仅仅是"通过测试" - 应该担心证明我们的系统有价值和有意义.由于`IQueryable <T>`在实现之间是如此不同,因此模拟/伪造此接口几乎没有任何证据. (2认同)