C# 对于可测试控制器,我需要UoW还是只需要存储库?

C# 对于可测试控制器,我需要UoW还是只需要存储库?,c#,.net,asp.net-mvc,entity-framework,C#,.net,Asp.net Mvc,Entity Framework,我曾经在DAL中与工作单位用户一起使用存储库。我刚开始使用MVC。这里我需要一些帮助 我是否需要在DAL中实现工作单元以使我的控制器可测试,或者只需要具有接口实现的存储库 如果我实现UoW,我不知道我将如何进行控制器单元测试 对不起,我的问题可能有点理论性,但我想它是确定的:)控制器构造函数中的存储库接口对于控制器测试来说足够简单。如果您还希望单元测试存储库,那么可以使用工作单元接口来抽象DB工作,这对于EF来说非常容易创建。这只允许您测试多个层。谢谢您说了一些我想做的事情,但有些事情我不知道。

我曾经在DAL中与工作单位用户一起使用存储库。我刚开始使用MVC。这里我需要一些帮助

我是否需要在DAL中实现工作单元以使我的控制器可测试,或者只需要具有接口实现的存储库

如果我实现UoW,我不知道我将如何进行控制器单元测试


对不起,我的问题可能有点理论性,但我想它是确定的:)

控制器构造函数中的存储库接口对于控制器测试来说足够简单。如果您还希望单元测试存储库,那么可以使用工作单元接口来抽象DB工作,这对于EF来说非常容易创建。这只允许您测试多个层。

谢谢您说了一些我想做的事情,但有些事情我不知道。如果我使用UoW,控制器测试不会变得困难吗?在测试课上我将如何通过DB?填充接口将变得非常困难。你能推荐一些链接或分享更多细节吗?如果我在controlelr consturtor中使用repository itnerface,控制器测试就可以了。我不明白如何使用UoW接口测试控制器和DAL?请指导。控制器应该使用存储库,但存储库应该使用UOW-因此,控制器知道ICCustomerRepository,CustomerRepository(实现)知道UOW。将控制器和UOW分开。任何CRUD操作都将始终经过存储库。如果你把它分开,工作起来会容易得多。再次感谢。为了在控制器中澄清,我将实例化存储库的接口或UoW?存储库接口的接口;这将使使用任何模拟工具模拟数据库访问变得容易。