单元测试 – 模拟IoC容器?

模拟IoC容器是否有意义?如果是这样,我将如何使用Moq?

我正在使用Unity 2.0作为IoC容器创建一个Prism 4应用程序.我将容器注入需要其服务的类,而不是使用Prism的ServiceLocator.对于单元测试,除非我需要其他Prism服务进行测试,否则我只需实例化容器并使用它注册模拟.我将容器传递给测试中的类,这样可以解决模拟问题.

这一切都相当简单,但我想知道我是否应该嘲笑容器?为什么?如果是这样,如果我使用Moq作为我的模拟框架,我该怎么做?谢谢你的帮助.

最佳答案
不,因为application classes should not reference a container at all模拟DI容器没有意义.

您应该只注入他们需要的服务,而不是将容器注入到类中.这也意味着你可以unit test them without referencing a DI container at all.

转载注明原文:单元测试 – 模拟IoC容器? - 代码日志