Sfondo
Nella documentazione di un progetto su cui sto lavorando mi sono imbattuto nella seguente frase che ha immediatamente attivato un allarme per me:
when having several concrete classes that inherits from the same base class, logic which is common for all sub classes should NOT be implemented in the base class.
Questa è una dichiarazione piuttosto audace che tipo di conflitti con tutto ciò che penso di OOP.
Il motivo dichiarato era testabilità. Ha detto che quando si scrivono i test delle unità, se una logica comune è implementata nella classe base, sarà testata più volte per ogni sottoclasse concreta e non può essere derisa.
Domanda
Dove o come si può implementare una logica comune per più sottoclassi in modo che possa essere facilmente derisa quando vengono testate?