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