Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: The wonders of Test::More

by syphilis (Archbishop)
on May 22, 2022 at 01:28 UTC ( [id://11144069]=note: print w/replies, xml ) Need Help??


in reply to Re: The wonders of Test::More
in thread The wonders of Test::More

ok $exp eq $got or diag explain [$exp, $got];

Yeah, that's not a bad idea.
I don't get much sense from "or diag explain [$exp, $got]" when the variables are Math::MPFR objects:
C:\>perl -MMath::MPFR -MTest::More -e "$got=Math::MPFR->new(2); $exp= +Math::MPFR->new(2); ok($got != $exp) or diag explain [$exp, $got]; d +one_testing();" not ok 1 # Failed test at -e line 1. # [ # bless( do{\(my $o = 46472664)}, 'Math::MPFR' ), # bless( do{\(my $o = 46474008)}, 'Math::MPFR' ) # ] 1..1 # Looks like you failed 1 test of 1.
but I could instead use something like or warn "$got == $expected" to provide a more meaningful diagnostic.

There's probably quite a few places in my test scripts where this blow-up could occur, but the blow-up only happens with the overloaded "!=" operator, and then only if the test fails.

Cheers,
Rob

Replies are listed 'Best First'.
Re^3: The wonders of Test::More
by haukex (Archbishop) on May 22, 2022 at 04:45 UTC
    I could instead use something like or warn "$got == $expected"

    That works, as well as simply naming the test e.g. "$exp eq $got", or I sometimes use Data::Dump's pp to get properly quoted stings (since explain doesn't do that for simple strings).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11144069]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2024-04-20 15:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found