Type Safety (was Re: fun and empowerment)

Lex Spoon lex at cc.gatech.edu
Sat Jan 29 18:19:37 UTC 2000


> 
> Largely a myth.  However, I am convinced that "design by contract" and
> similar methods can be worth the time and effort and could easily be
> supported by Smalltalk.  Has anyone written an Eiffel-like assertion package
> for Smalltalk classes?


SUnit has largely the same feel: you write checks in parallel with the
code.  The checks in SUnit are external to the classes, though.  Indeed,
I've found that not only do I catch a few bugs by using SUnit, but that
I end up with cleaner code that I understand better.  I think it's just
from having to sit and read through the code carefully which does
this--making up a good check means you have to really think about how
the code works.

For internal checks like you describe, it would be cool if Squeak had a
global assert: function:


	Object assert: aBlock
		"check that aBlock is true.  Can be disabled via a preference."
		Preferences doAssertions ifTrue: [
			aBlock value ifFalse: [ self error: 'Assertion failed' ] ]


Lex





More information about the Squeak-dev mailing list