在依赖注入的单元测试中进行模拟

时间:2014-01-02 13:01:42

标签: c# azure nunit ninject moq

我想知道使我的系统可测试的最佳方法。

我不确定DI和嘲笑的最佳做法。

如果通过使用接口来促进DI,我应该构建实现与真实类相同接口的模拟类吗?

然后通过DI在我的测试中使用这些模拟类?

我将数据导入HDInsight。数据取自天蓝色队列。

我想模拟/模拟队列和hdinsight,因此我的单元测试很快并且解耦。

我应该在我的测试中使用依赖注入还是moq足够,这些应该独立运行吗?

2 个答案:

答案 0 :(得分:2)

MocksDependency Injection齐头并进,因为没有依赖注入,你就无法让你的类使用模拟而不是真实的东西。您不需要的是Dependency Injection Container(例如Ninject)。如果你愿意,你可以使用它,但如果你做得对,你应该能够通过自己提供所有依赖项来对你的类进行单元测试。

答案 1 :(得分:2)

Moq就足够了。

您的测试使用模拟来帮助促进结果。它们设置简单快捷(一旦您习惯了您选择的任何模拟库)。

如果你要使用DI框架......你的工作量会增加三倍。您不仅可以手动删除模拟..但您也可以为测试维护DI配置。这根本不适合任何工作流程。