I am trying to use DBD :: Mock to test code that uses a database. So far, normal SQL queries have worked fine, however, I was somewhat confused about how I can check the code that calls stored procedures. Using the bound_params key for the DBD::Mock::Session->new constructor, I can specify the input parameters, but I cannot find a way to configure the mock-up results of the parameters associated with DBI::StatementHandle::bind_param_inout() .
To provide an example for the code to be tested, look at the following:
use DBI; my $dbh = DBI->connect('dbi:Mock', '', '', { RaiseError => 1, PrintError => 1 }); my $sth = $dbh->prepare(q{ BEGIN some_stored_proc(i_arg1 => :arg1, o_arg2 => :arg2); END; }); my ($arg1, $arg2) = ('foo', 'bar'); $sth->bind_param(':arg1', $arg1); $sth->bind_param_inout(':arg2', \$arg2, 200); $sth->execute(); print STDERR "OUTPUT VALUE OF arg2 = $arg2\n";
Now I want to put the DB with 'frobnication' for the arg2 parameter, so when executing the above code, the variable $arg2 contains this line, and the output
OUTPUTVALUE arg2 = frobnication
source share