On Mon, May 5, 2014 at 1:40 PM, Carlo <[email protected]> wrote:

> Hi
>
> Personally I think the main reason to use #should: is that debugging is
> easier as you can more easily restart the block in Debugger and replay the
> failing messages. i.e. think of the #should: as lazily running the code
> whereas #assert: as being eager because it evaluates the argument
> immediately.
> Often I’ll use the #assert:equals: or #assert:description so that I can
> more easily debug (by restarting the execution in the appropriate test
> method). I have previously modified the #assert: method to be polymorphic
> with a boolean or a block so I don’t have to use #should: e.g.
>
> assert: aBoolean
>         aBoolean value ifFalse:
>                 [self logFailure: 'Assertion failed'.
>                 self defaultTestFailure signal: ‘Assertion failed'].
>
> Apart from this I agree with all the comments on the doubts of using
> #should:. Converting #should: calls to #assert: calls is probably not worth
> the effort unless the #assert: is made polymorphic against a boolean or a
> block.
>

+1.  But it's trivial to add value to assert: et al...


>
> Cheers
> Carlo
>
>
> On 01 May 2014, at 12:52 AM, Nicolas Cellier <
> [email protected]> wrote:
>
> Hi,
> I see many usage of #should: in SciSmalltalk tests that could simply be
> turned into #assert: or eventually #assert:equals:
> Why wanting to use a block?
> Other than #should:raise: and #shouldnt:raise:, I don't really see the
> point of #should: alone anyway...
> IMO should: should be deprecated, less is more.
> I'm possibly the author of several of these #should: sends, so don't take
> it personnally ;)
>
> P.S. or is it easier to restart the block in the Debugger?
> I cross post to pharo-dev because it's a generic question, and there are a
> few #should: sends in Pharo-3.0 too.
>
>
>


-- 
best,
Eliot

Reply via email to