当我只能使用EF 3.5实体时,编写单元测试的最佳方法是什么?
当我只能使用EF 3.5实体时,编写单元测试的最佳方法是什么?
如果您正在尝试对查询本身进行单元测试,我强烈建议设置一个测试数据库,并使用真实数据进行测试。在单元测试中使用IObjectSet<T>
来替换内存集合是一个不好的想法。在linq-to-objects下运行linq查询和将其解析为T-SQL命令之间存在差异,特别是在处理null值时。例如,
db.People.Where(p => p.AccountNum == variable);
WHERE [peopleTableAlias].[AccountNum] = @param1
将生成一个带有 @param1 为空的查询,这是没有意义的,因为您真正需要生成一个 IS NULL 查询。