Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Testing my carping

by kyle (Abbot)
on Mar 15, 2008 at 13:28 UTC ( [id://674354]=note: print w/replies, xml ) Need Help??


in reply to Testing my carping

If you don't want to install Test::Exception (or don't want to rely on it), you can do the same kind of thing manually without too much trouble.

use English '-no_match_vars'; eval { possible_exception_thrower() }; ok( ! $EVAL_ERROR, 'possible_exception_thrower() threw nothing' ); eval { this_should_die() }; ok( $EVAL_ERROR, 'this_should_die() did die' ); like( $EVAL_ERROR, qr/exceptional error text/, 'this_should_die() died for the expected reason );

You can use the __WARN__ "signal handler" to check if your code warns the way you want.

{ my $warning; local $SIG{__WARN__} = sub { $warning = shift }; is( $warning, undef, 'no warnings recorded' ); code_that_warns(); is( $warning, 'expected warning', 'code_that_warns() does indeed warn' ); $warning = undef; non_warning_code(); is( $warning, undef, 'non_warning_code() is clean' ); }

If you're going to be pitching (and testing for) more than one warning, then the warning handler should push into an array that you can test against.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2024-03-28 20:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found