如何在实体框架中没有存储库模式进行单元测试

时间:2013-12-17 21:05:53

标签: entity-framework unit-testing

我已经在MVC中使用工作单元+通用存储库和实体框架一段时间了,我正在寻找一种在控制器中单元测试操作方法的方法,而无需设置存储库。

这是我现在处理事情的一个例子:

我有一个继承自IUnitOfWork接口的工作单元。该工作单元基本上具有每个实体框架实体的存储库(即用户实体的用户存储库)。我还在我的工作单元中尝试了一个通用存储库,但我发现我失去了Entity Framework提供的所有灵活性。我还有一个模拟工作单元,每个实体都有一个存储库。这个模拟工作单元被注入Ninject测试的控制器中。

但是,我注意到这个工作单元正在创建一个厚厚的抽象层。我失去了实体框架的灵活性,同时还有更多的代码需要维护。如果我执行通用存储库路由,那么工作单元代码更易于管理,但是这个问题并不适用。看起来是最好的方法。

我已经在线阅读了很多关于存储库模式的不同观点,例如已经实现了工作单元(dbcontext)和存储库(dbset)的实体框架,因此可以从实体框架中获得更多没有中间工作单元层与通用存储库。此外,通用存储库暴露实体框架内部并且是漏洞,因此它甚至无法在工作单元中使用通用存储库来抽象数据访问层。

大家都知道没有存储库的单元测试方法,或者更喜欢使用MVC和实体框架测试控制器操作的方法吗?

0 个答案:

没有答案