我们还需要几个月的时间才能重新设计产品的逻辑和业务层。通过利用MEF(依赖注入),我们已经实现了高水平的代码覆盖率,我相信我们拥有非常可靠的产品。由于我们一直在研究一些更复杂的逻辑,我发现单元测试越来越困难。
我们正在利用CompositionContainer来查询这些复杂算法所需的类型。我的单元测试有时难以遵循,因为必须进行冗长的模拟对象设置过程,恰到好处,以允许验证某些情况。我的单元测试通常比我试图测试的代码花费更长的时间来编写。
我意识到这不仅是依赖注入的问题,而且是整个设计的问题。对于我过于复杂的测试,是不是很差的方法设计或缺乏组合?我已经尝试过基类分析测试,创建常用的模拟对象并确保尽可能地利用容器来缓解这个问题,但我的测试总是非常复杂且难以调试。您已经看到哪些提示可以使这些测试简洁,可读且有效?
答案 0 :(得分:7)
我的主观观点:
答案 1 :(得分:0)
以下是关于DI的一些很好的链接以及您可能想要检查的良好设计实践(在编写可测试代码方面)(谷歌技术讲座):
我发现它们对可测试设计有很多好的建议非常有帮助。