Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: TDD of non-module code

by davies (Vicar)
on Jan 24, 2012 at 15:04 UTC ( #949707=note: print w/ replies, xml ) Need Help??


in reply to Re: TDD of non-module code
in thread TDD of non-module code

This is my first attempt at TDD in Perl. I'm using Test::Simple and nothing more complicated than ok. My approach to coding is to write the test, check that it fails and then write the code to make is pass. I'm trying to write the code from the bottom up, so that the first thing I did was to create the Excel instance. Then I accessed the code modules and made sure that I was getting the sheet names and line counts back. Then, getting sick of closing orphan instances manually, I wrote the code to close the created Excel instance. Then I wrote code to open the output files. And so on.

I'm not sure if this answers your question "how are you contemplating the process of “testing”", but what I want is a battery of tests that mean that, when I make a change, I can have some reassurance that I haven't made things worse.

Regards,

John Davies


Comment on Re^2: TDD of non-module code
Select or Download Code
Re^3: TDD of non-module code
by grantm (Parson) on Jan 26, 2012 at 21:53 UTC
    This is my first attempt at TDD in Perl. I'm using Test::Simple and nothing more complicated than ok.

    The Test-Simple distribution includes the Test::More module - since you already have it installed, you might as well use it. For an example of how this will improve your life, consider this test:

    ok(animal() eq 'monkey', 'animal() returned monkey')

    Using the is function from Test::More the same test might be written like this:

    is(animal(), 'monkey', 'check animal() return value')

    The difference is that when your test fails, the diagnostic output will tell you what value was expected and what was actually received - making things much easier to debug.

    Test::More has a number of handy functions like this which will save your time.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://949707]
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: (6)
As of 2014-10-01 20:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (38 votes), past polls