测试使用DbContext的存储库的最佳方法

tug*_*erk 5 asp.net-mvc unit-testing entity-framework mocking dbcontext

在我的项目中,我遵循存储库模式,以便轻松地单元测试我的ASP.NET MVC应用程序.这允许我轻松地模拟对象.

但是,我根本没有通过这种方式测试存储库逻辑.

例如,请参阅以下博客文章:

如何使用ASP.NET MVC上的通用存储库和单元测试他们通过Mocking

这就是我的工作以及我如何测试我的ASP.NET MVC应用程序.

您认为测试使用DbContext类来获取数据的存储库的最佳方法是什么?

  • 直接从数据库获取数据?(我认为这将是最糟糕的,但我想知道你的悸动)
  • 我应该创建一个假的数据库并用虚拟数据填充它并指向EF来连接该数据库吗?

以及您可能建议的任何其他方法.

编辑:

我在这里使用EF 4.2.

Lad*_*nka 7

存储库是数据库的入口点,因此测试它的唯一方法是使用集成测试并在测试数据库上工作.您可以使用事务测试,其中每个测试将在测试结束时设置事务和回滚,以使所有测试的测试数据保持相同.

  • 是.这是测试存储库的正确方法. (2认同)