in reply to Re^6: Does anybody write tests first?
in thread Does anybody write tests first?

I guess must be being thick here, but...

If you do not use use_ok, then what symbols are defined in or by the module prior to the compilation error is irrelevant, because the script that uses that module will be aborted:

C:\test>type Existant.pm package Existant; fi( 'A' == 'B' ) { print 'hi' } 1; C:\test>perl -le"use Existant; print 'Hi';" syntax error at Existant.pm line 2, near ") {" Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1.

So, if all you are going to do if the use_ok fails, is exit, you've gone to a lot of trouble for nothing.

And along the way you've thrown away all that nice information telling you what went wrong and where.

Any way I look at that, it is a net loss. And a major one that requires me to write another script or one-liner and run it in order to retrieve that information.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^8: Does anybody write tests first?
by chromatic (Archbishop) on Feb 22, 2008 at 21:28 UTC
    And along the way you've thrown away all that nice information...

    I haven't; it's part of the diagnostic information emitted by use_ok().

    The biggest advantage for me is that failures of this type get captured and recorded in the same way as all other test failures; they go through the uniform interface of TAP where my existing toolchain needs no modification to highlight these errors.