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

Re: Re: Re: Testing for Beginners

by Ovid (Cardinal)
on Apr 08, 2004 at 19:21 UTC ( #343714=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Testing for Beginners
in thread Testing for Beginners

Some quick 'n dirty testing guidelines:

  • It's easier to test modules than scripts. Move the code to be tested into modules.
  • It's usually poor design to have a function or method do too many things. Coincidentally, it makes them harder to test. Break them into separate functions.
  • For scripts, I frequently have a DEBUGGING constant. If it's true, I have it runs tests embedded directly in the code (it's easier if you can run the CGI script from the command line). You can see a simple example of embedding tests (without the constant) at Why is goto &sub slow?.
  • You can also mock up troublesome interfaces (if they're tested separately!) by using Test::MockObject or something similar (I frequently localize the sub and have it return results directly).

You might also be interested in Test::AtRuntime. It's a great module that can solve some of these problems.

Cheers,
Ovid

New address of my CGI Course.


Comment on Re: Re: Re: Testing for Beginners

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (10)
As of 2015-07-31 06:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (274 votes), past polls