In the documentation of a project I'm working on I came across the following sentence which immediately triggered an alarm for 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.
This is a pretty bold statement which kind of conflicts with everything I think of OOP.
The reason stated was testability. It said that when writing unit tests, if a common logic is implemented in the base class, it will be tested multiple times for each concrete sub class and cannot be mocked out.
Where or how can one implement a common logic for multiple sub classes so it can be easily mocked when they are being tested?