Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^5: Auto-compile checking??? WTF?

by stevieb (Canon)
on Apr 16, 2016 at 11:49 UTC ( [id://1160631]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Auto-compile checking??? WTF?
in thread Auto-compile checking??? WTF?

You're half way there then. Instead of using a single script that you keep changing, once you get your 'test' to run, copy it to a file with a .t extension and that's it.

Of course, using Test::More is a good choice for doing the assertions. Here's the difference between a normal test script, and a real test:

use warnings; use strict; use My::Module; my ($x, $y) = My::Module->pairs(); print "ok" if $x == $y;

test:

use warnings; use strict; use Test::More; use_ok('My::Module'); my ($x, $y) = My::Module->pairs(); is ($x, $y, "pairs() returns a pair that match"); done_testing();

The latter will tell you exactly what was expected and what failed if there's a fail. The former doesn't. Not much extra effort. So if you're testing your code with one-offs, save them to test files instead, and now that part of your code will be tested every time you run your suite.

Example test output from above on fail:

ok 1 - use My::Module; not ok 2 - pairs() returns a pair that match # Failed test 'pairs() returns a pair that match' # at pairs.t line 11. # got: '1' # expected: '2' 1..2 # Looks like you failed 1 test of 2.

...because someone made a typo in the pairs() function:

sub pairs { return (1, 2); }

Log In?
Username:
Password:

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

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

    No recent polls found