出于单元测试的目的,是否可以这样做:
?
我们不希望我们的单元测试依赖于特定的外部数据库,并且处于特定的状态。
我们也不希望在我们的代码和测试中保持两个不同的“世界”,即EF对真实数据库运行的真实世界以及我们的测试针对某种EF模拟运行的虚假工作。
答案 0 :(得分:6)
单元测试不应依赖于任何数据库。对数据库的任何依赖(即使在内存数据库中)都意味着您正在进行集成测试,并且应该针对您将要使用的真实数据库进行集成测试。
我不知道EF的任何XML数据库,但即使它存在,你又回到了你的要求之前:我们也不想在我们的代码中维护两个不同的“世界”并测试< / em>的。每个数据库都有自己的EF提供商,由不同的公司创建。即使是MS SQL Server和MS SQL Server Compact Edition的提供程序也不同,它们之间的切换非常具有挑战性。
你应该做什么: