[Seaside] ShoreComponents test cases -- worth doing?

Pavel Krivanek squeak3 at continentalbrno.cz
Tue Jul 19 16:09:48 CEST 2005

It’s really mainly "self check“. Every component except real root should 
have a parent. If we will use #mustBeChild method, we loose this 
checking functionality anyway. What about to use any nonviolent way to 
warn the programmer (any message in Transcript etc.)?

-- Pavel

>I've started looking at writing tests for the ShoreComponents (the name
>is fine for me, by the way).  One problem I've been having is the
>"canBeRoot" check.  In SeasideTesting components that don't answer
>"true" to this method can still be the root of a "test" application. 
>ShoreComponents breaks this with:
>    "Returns a new instance of the receiver"
>    self canBeRoot
>        ifTrue: [ ^ super new ]
>        ifFalse: [ self error: 'use parent:'. ].   
>This makes writing a test case for any ShoreComponent very
>inconvenient.  It seems to me to be more of a "self check" rather than a
>necessity.  I understand that some components _require_ a parent but
>this is independent of the #canBeRoot mechanism (which, despite its
>name, is really just a flag to make the config tool's list shorter). 
>So, rather than me hacking a workaround into SeasideTesting would you
>consider adding #mustBeChild to the class side of ShoreComponent
>(default to false) and check it instead of canBeRoot.  That would, of
>course, mean that you'd have to go through and pick the components that
>require a parent and set their #mustBeChild to true.  Of course this is
>only reasonable if most components don't actually require a
>parent...which I assume they don't.  If I'm wrong here then I'd be happy
>to hear other suggestions.

More information about the Seaside mailing list