加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在单元测试中进行模拟时,数据库/实体框架与内存列表之间的

发布时间:2020-12-15 17:24:49 所属栏目:百科 来源:网络整理
导读:我最近一直在用模拟进行大量的单元测试.让我觉得有点问题的一件事是查询内存列表(通过模拟我的存储库)和通过实体框架直接查询数据库之间的区别. 其中一些情况可能是: 测试过滤器参数,该参数对数据库不区分大小写,但区分大小写 对内存集合导致错误的失败. Li
我最近一直在用模拟进行大量的单元测试.让我觉得有点问题的一件事是查询内存列表(通过模拟我的存储库)和通过实体框架直接查询数据库之间的区别.

其中一些情况可能是:

>测试过滤器参数,该参数对数据库不区分大小写,但区分大小写
对内存集合导致错误的失败.
> Linq语句可能会针对内存集合传递,但会对实体框架失败,因为它们不受支持导致错误传递.

处理或解决这些差异的正确方法是什么,以便在测试中没有错误传递或失败?我非常喜欢嘲笑,因为它让事情变得更快更容易测试.但在我看来,获得真正准确测试的唯一方法是仅针对实体框架/数据库环境进行测试.

解决方法

除了单元测试之外,您还应该创建集成测试,这些测试针对生产中遇到的真实数据库设置运行.

我不是EF的专家,但是对于NHibernate,你可以创建一个配置,指向SQLite的内存中实例,然后运行快速测试(即在开发周期中你要通过测试)套房尽可能快).当您想要针对真实数据库运行集成测试时,您只需将NHibernate配置更改为指向真实数据库设置并再次运行相同的测试.

如果你无法实现与EF类似的东西,那将会令人惊讶.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读