[Seaside] ShoreComponents test cases -- worth doing?
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.)?
>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