【发布时间】:2011-02-17 04:33:40
【问题描述】:
事情是这样的:我正在测试一个使用 LINQ to Entities (EF4/.NET4) 的应用程序。该应用程序绑定到忽略空值的 Contains 方法的实现,并且由于数据库的配置方式,忽略大小写。效果很好。
但是,当我从单元测试中调用相同的方法时,我传入了一个假上下文,该上下文公开了具有 IQueryable 的内存实现的集合。在这种情况下,引入的是 Contains 的 LINQ to Objects 版本,它关心 null 和大小写。
现在,我可以编写我的应用程序代码来检查 null 和大小写,但我不想影响正在生成的 SQL,以便在从单元测试调用它并且不涉及 SQL 时它可以工作。
我真正想要的是提供正确的 IQueryable 或其他任何东西,以便在测试期间,我可以换入我自己的忽略 null 和大小写的自定义 Contains 实现。我怎么做?谢谢!
【问题讨论】:
标签: c# linq unit-testing extension-methods iqueryable