我正在努力找出解决问题的最佳方法。我在类中有多个创建新对象的方法:
public void ToBeTested()
{
ClassForExmaple classForExample = new ClassForExample();
//Other logic.....
}
public void ToBeTested2()
{
ClassForExmaple2 classForExample2 = new ClassForExample2();
//Other logic.....
}
等.....
我总共有大约5个这些对象,我将使用构造函数注入,但这看起来非常混乱。因为他们中有一些我应该使用私有财产,还是有另一种方式?
我这样做,所以我能够模拟这些新的呼叫。
答案 0 :(得分:2)
你应该使用构造函数注入。如果它因为你有太多的依赖关系而变得很混乱,那么你应该分解你的代码,这样你正在测试的类就没那么多了。
对某个类有太多依赖关系表明您可能没有关注Single Responsibility Principle。
也就是说,5个依赖项(在某些情况下)可能没问题。
答案 1 :(得分:2)
在这种情况下使用构造函数注入似乎很好,因为看起来你有每种类型对象的单个实例。如果不是这种情况,您可以将工厂注入到类的构造函数中,并允许它根据需要创建对象。
我会避免嘲笑私人财产;如果您不得不诉诸于此,通常意味着您在类中隐藏了可测试的代码,这些代码应该更好地暴露给测试框架。公开要在外部设置的公共财产会更好。