Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: The wonders of Test::More

by haukex (Archbishop)
on May 21, 2022 at 15:34 UTC ( [id://11144046]=note: print w/replies, xml ) Need Help??


in reply to The wonders of Test::More

I'm interested to hear thoughts on what is the "correct" way to deal with this issue.

Though probably the most boring way of dealing with the issue, personally I would probably tend to simply use an ok test for a case like this... they way I see it, all the other Test::More functions are just sugar for ok.

use warnings; use strict; use Test::More; my $exp = "two"; my $got = "Two"; ok $exp eq $got or diag explain [$exp, $got]; done_testing;

Replies are listed 'Best First'.
Re^2: The wonders of Test::More
by syphilis (Archbishop) on May 22, 2022 at 01:28 UTC
    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
      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://11144046]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (6)
As of 2024-04-18 21:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found