假设我有一个如下所示的类:
internal class SomeClass
{
IDependency _someDependency;
...
internal string SomeFunctionality_MakesUseofIDependency()
{
...
}
}
然后我想添加相关但使用不同依赖项来实现其目的的功能。也许类似于以下内容:
internal class SomeClass
{
IDependency _someDependency;
IDependency2 _someDependency2;
...
internal string SomeFunctionality_MakesUseofIDependency()
{
...
}
internal string OtherFunctionality_MakesUseOfIDependency2()
{
...
}
}
当我为这个新功能编写单元测试(或更新我对现有功能的单元测试)时,我发现自己创建了一个新的 SomeClass 实例(SUT),同时为我不需要的依赖项传入 null对于我要测试的特定功能。
这对我来说似乎是一种难闻的气味,但我发现自己走上这条路的真正原因是因为我发现自己为我引入的每一个新功能都创建了新的类。这似乎也是一件坏事,所以我开始尝试将类似的功能组合在一起。
我的问题:一个类的所有依赖项是否应该被它的所有功能所消耗,即如果不同的功能位使用不同的依赖项,那么这些可能应该存在于单独的类中是一个线索吗?