On Friday 23 November 2001 15:59, you wrote:

> On Fri, Nov 23, 2001 at 03:32:41PM -0700, chromatic wrote:
> > +   is( DB::DB(), undef, 'DB::DB() should return undef if $DB::ready is
> > false');
>
> Crap, this doesn't quite work in the general case.
>
>     is( undef, undef );     # ok
>     is( 0,     undef );     # not ok
>     is('',     undef );     # ok
>
> is() uses eq and undef stringifies to ''.  is( $foo, undef ) is a nice
> idiom, though.

I got it from *somewhere*.  I'd almost swear it was in the first version of 
Test::Builder, having been untimely ripped from the womb of pre-wrapper 
Test::More.

> Should is() distinguish between undef, 0 and ''?  Seeing as how it
> already does between undef and 0 (accidentally), I guess it wouldn't
> hurt.

Perl does, why shouldn't the tests?  Something like this only has one problem:

        $test = 'undef' unless defined $test;

Most people likely to write tests are smart enough to avoid nasty literal 
phrases like '0 but true' and 'undef'.  I hope.  I left room at lunch to eat 
those words, though.

-- c

Reply via email to