Liskov principle and unittest
Max Klyga
max.klyga at gmail.com
Fri Sep 23 13:17:03 PDT 2011
On 2011-09-23 12:55:25 +0300, deadalnix said:
> I recently faced a problem in java. I have looooooooots of classes
> inheriting from the same superclass. Thoses classes has to conform to
> some behaviour expected when manipulation the superclass as Liskov
> substitution principle says.
>
> This is definitvelly hard to achieve. Solution promoted on the web are
> frankly not satisfying. Most of them suggest to inherit jUnit tests
> too, bit this is unable to handle classes implementing multiple
> interfaces, and require to write a test class for each subclasses. So
> if somebody don't do thoses tests, the subclass isn't checked (which is
> predictible) but the superclass tests are not ran either, which make
> things even worse. This innability to check that easily makes a lazy
> dev even more dangerous, which isn't what we want.
>
> Back to D, which has integrated unittest, I wonder how I could
> implement such a check. I think the D unittest system suffer the same
> flaw as jUint (previously exposed). What do you think ?
>
> deadalnix
D has a wonderful feature that is suitable for such use cases - Design
By Contract.
You specify invariants and in/out contracts in your superclass and they
will be automatically checked for subclasses.
Read more here - http://www.d-p-l.org/dbc.html
More information about the Digitalmars-d
mailing list