mkirank has asked for the wisdom of the Perl Monks concerning the following question:

I have a subroutine f1 in a Class
Package A; use Carp; sub new { ... } sub f1 { my $param1 = shift; my $param2 = shift; my $param3 = shift; croak '- parameter1 required' unless $param1; if ((!$param2) && $param3 eq 'X') { croak '- parameter2 required' ; } some code here; }

I use Test::More to test this sub . Here is what i have used
use Test::More qw(no_plan); my $n = 1; BEGIN { use_ok('A'); } $n++; my $a = new A; isa_ok( $a,"A"); $n++; eval { $a->f1( ) }; print "ok $n"; print "\t\tno arguements passed\n"; if ( $@) { diag ( "$@\n" ); } $n++;

my question is When we do not pass parameter to the f1 then it must die,
I use eval to do this in the test script ,
Is this how i should test this function ) or is there any other option in Test::more (which is the best way)