http://www.perlmonks.org?node_id=949707


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

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