首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF核心、EF 6及不同的测试方法

EF核心、EF 6及不同的测试方法
EN

Stack Overflow用户
提问于 2019-12-20 11:05:39
回答 1查看 239关注 0票数 3

目前,我正在对上下文方法进行重构测试,不再需要真正的数据库。我用Ef核心。

因此,我阅读了微软文档如何测试上下文方法。我首先找到了EF6测试的文档,然后阅读了EfCore的文档。

以下是链接:

我发现有趣的是,对于EF6和EF6有不同的最佳实践。

对于EF6,微软建议使用模拟上下文或编写自己的测试双倍。所以这两次都是在嘲弄上下文。

对于建议使用Sqlite或内置的InMemory数据库。

用Moq来嘲弄上下文对我来说是相当合理的。我只想测试这些方法的功能。之后我无论如何都要做整合测试。为什么它不再以建议的方式为EF核心?更广泛地说,不同方法的优点或问题是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-20 11:45:27

仔细看看下面同一篇文章的引文..。

SQLite内存中模式允许您针对行为类似关系数据库的提供程序编写有效的测试。

这为您提供了常量和不可更改的测试数据,但也提供了关系数据库问题和行为。它更接近真实的生活场景。

另一方面,模拟为您提供了一个可以将关系更改为任何其他模型的实现,因此它具有更多的用途。

因为EF是为db而您正在为EF进行测试,所以使用第一个选项是非常有意义的。通常情况下,您甚至不需要测试诸如遗传存储库之类的琐碎操作。

确保在更高级别(使用存储库的类等)上进行测试时使用模拟,因为您希望模拟没有并且不应该与具体实现有任何耦合的接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59424219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档