Hello Monks I have several perl scripts that I was told to write test suites for. The scripts look like this:
#!/usr/bin/perl -w # file somescript.pl use strict; use warnings; sub SubThatNeedsToBeTested { # do some stuff if ($error ) { print "error occurred\n"; exit 2; } if ($othererror) { print "another error occurred\n"; exit 3; } } sub NoNeedToTestThis { # ... } ## main program &SubThatNeedsToBeTested (); &NoNeedToTestThis (); exit 0;

I would like to write tests only for some functions, for example for SubThatNeedsToBeTested but not for NoNeedToTestThis.

Could this be achieved without restructuring the scripts ie moving functions like SubThatNeedsToBeTested to a separate module? Can I somehow load subs into my test script namespace without executing the main program part?

Some methods call exit $errorcode. Is there a way to trap this? I was thinking about eval, but it only traps die.

How would you test this without restructuring the scripts too much?

Thank you for your answers


In reply to Testing parts of perl scripts by koo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.