在重构一些旧的遗留代码时,我试图尽可能多地应用单一责任原则,因此我最终得到了许多只有一个目的的类。这很好,但是当我试图为这些新类编写单元测试时,问题就来了。有些类真的很难测试,因为测试很难设置。我需要创建4-5个mock/stub来编写一个测试用例,如果我想要覆盖所有代码,我需要编写几个测试用例,所以这只是一个麻烦。
难于设置测试(因为它依赖于许多其他类)是一种代码味道吗?你怎么解决这个问题呢?
发布于 2012-08-03 04:50:17
下面是Uncle Bob says about SRP的内容
一个类应该有且只有一个更改的原因。
请注意,它并没有说“一个类做一件事,而且只做一件事”。换句话说,如果除了一个责任之外的所有责任都是不变的,或者如果它们都将一起改变,那么一个类具有多个责任是完全有效的。
在他的Agile Patterns, Principles, and Practices书中,鲍勃叔叔说:
在SRP的上下文中,我们将责任定义为更改的原因(117)。
和:
另一方面,如果应用程序没有以导致多个职责在不同时间发生变化的方式进行更改,则没有必要将它们分开。实际上,将它们分开会让人感觉到不必要的复杂性。(118)
也就是说,有太多合作者的类是一种气味,应该仔细检查。
发布于 2012-08-03 04:34:30
https://stackoverflow.com/questions/11784836
复制相似问题