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


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.

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.