Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Testing Non-module code

by whiteEFunk (Acolyte)
on Mar 16, 2004 at 18:46 UTC ( #337084=note: print w/ replies, xml ) Need Help??


in reply to Testing Non-module code

I found that writing tests along with the code helps me catch error conditions early. I use Test::More. Sometimes, the code I write is not intended to run in my development/test environment. In these cases I modify package objects, or data structures within the tests to get the desired scenario. Then I run a test against it.

Test::More example:

foo.pl contains a function named foo_plus_one like this -

sub foo_plus_one($) { return $_[0]+1 }
You can 'require' your script into the test -
BEGIN { require_ok("('foo.pl')") };
and call the functions -
my $foo = 4; is( foo_plus_one($foo), '5', 'method foo_plus_one()' );

pass output -
1..1
ok 1 - method foo_plus_one()


OR fail -
1..1
not ok 1 - method foo_plus_one()
# Failed test (foo.t at line 6)
# got: '1003'
# expected: '5'


Testing is a great way to build a program! Ye-haw!


Comment on Re: Testing Non-module code
Select or Download Code
Re: Re: Testing Non-module code
by pboin (Deacon) on Mar 17, 2004 at 11:00 UTC

    Well, I didn't know where the question would lead exactly, but I think your post has the real key, and that is:

    To test a procedural script w/o affecting regular run-time behavior, 'require' the script into your test script so you have access to it's subroutines.

    Thanks to you and everyone, the PerlMonks never cease to impress me. With this kind of support, no wonder 4 out of 5 dentists who code prefer Perl!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (7)
As of 2014-07-26 15:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (178 votes), past polls