目前我正在重构我的上下文方法测试,以便不再需要实际的数据库。我使用 Ef Core。
因此我阅读了微软文档,了解如何测试上下文方法。我先阅读了 EF6 测试的文档,然后是 EF Core 的文档。
以下是链接:
我觉得有趣的是 EF6 和 EF Core 有不同的最佳实践。
对于 EF6,Microsoft 建议使用 Moq 模拟上下文或编写自己的测试替身。所以两次都是模拟上下文。
对于 EF Core,Microsoft 建议使用 Sqlite 或内置的 InMemory 数据库。
对我来说,使用 Moq 来模拟上下文似乎很合理。我只想测试方法的功能。不管怎样,之后我还必须进行集成测试。为什么这不是在 EF Core 中的推荐方式呢?总的来说,不同方法有哪些优缺点呢?