On Tuesday, 4 June 2013 at 04:13:57 UTC, Manu wrote:
And I argue the subjective opinion, that code can't possibly be
correct if
the author never considered how the API may be used outside his
design
premise, and can never test it.
This very sentence show that you miss the point of OOP and Liskov
substitution principle.
To make the argument cleared, let's consider a lib with a class
A. The whole lib uses A and must now know about subclasses of A.
Not even A itself.
As a consequence, A don't need to be tested for all kind of
future possible override.
If I, as a programmer, create a class B that extends A, it is my
responsibility to ensure that my class really behave as an A. As
a matter of fact, the lib don't know anything about B, and that
is the whole point of OOP.