Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

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: 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("('')") };
and call the functions -
my $foo = 4; is( foo_plus_one($foo), '5', 'method foo_plus_one()' );

pass output -
ok 1 - method foo_plus_one()

OR fail -
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!

Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://337084]
[choroba]: A colleague showed me Lightning Maps today
[marto]: very nice
[choroba]: Especially the "Real Time" link
[choroba]: I can confirm it shows a lightning at the moment it strikes

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2018-05-23 21:39 GMT
Find Nodes?
    Voting Booth?