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