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