use strict;
sub isMoreThanTen {
my ( $sth ) = shift;
my $count = undef;
$sth->bind_param_inout(\$count);
return $count > 10 ? 1 : 0;
}
use Test::MockObject;
my $msth = Test::MockObject->new();
# Attempting to return by reference...
$msth->mock('bind_param_inout',sub { $_[0] = 11; });
if ( isMoreThanTen($msth) ) {
print "More than 10\n";
} else {
print "Less than or equal to 10\n";
}
Which results in;
Use of uninitialized value in numeric gt (>) at bindinout.pl line 7. Less than or equal to 10Have also looked as DBD::Mock but (unless I've misunderstood) it's bind_param_inout doesn't seem to be intended for this purpose. How can I do this? Many thanks.
The first argument to the mocked method is the invocant. I think you mean instead:
$msth->mock('bind_param_inout',sub { ${ $_[1] } = 11; });perlmonks.org content © perlmonks.org and Anonymous Monk, chromatic, harryf
prlmnks.org © 2006 edmund von der burg (eccles & toad)
v 0.03