我将Ninject用于IOC,并为每个模型使用单独的存储库。
我将为控制器编写一些单元测试,但是我不希望进行集成测试-我已经做过了-我不想接触DB。
我有两个选择
从理论上看,哪种方法更正确?
对我来说,第二个选项听起来更好,因为它将测试所有路径:UnitTest-> Controller(myMockRepository)-> Controller.AddItem()-> myMockRepository.AddItem(),从而测试实际的应用程序体系结构。
也许这两个选项是相同的,而我正试图使简单的事情变得过于复杂?
将模拟的实现注入控制器通常会提供更大的灵活性,并控制需要从模拟返回的数据。通常在单元测试中,您不应该使用任何依赖注入框架。单元测试是使您能够在完全ISOLATION中测试某些方法的功能的工具。
我个人将使用模拟框架,然后将存储库的模拟实现注入控制器。
话虽这么说,根据您要模拟的实现,有些人根本不会理会其DAL。DAL允许用内存的数据表示代替实际的数据库。但无需自己编写用于测试的所有方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句