NAME¶
DBI::Test - Test suite for DBI API
SYNOPSIS¶
In Makefile.PL:
use lib 'lib'; # to allow DBI::Test finds the test cases of your driver
use DBI::Test::Conf ();
my @generated_tests = DBI::Test::Conf->setup();
WriteMakefile (
test => {
TESTS => join (' ' => 'xt/*.t', @generated_tests),
},
clean => { FILES => join( " " => @generated_tests ) }
);
You provide
package DBI::Test::Your::Namespace::List;
sub test_cases
{
return qw(...); # list of the test cases you provide
}
package DBI::Test::Your::Namespace::Conf;
sub conf
{
my %conf = (
gofer => {
category => "Gofer",
cat_abbrev => "g",
abbrev => "b",
init_stub => qq(\$ENV{DBI_AUTOPROXY} = 'dbi:Gofer:transport=null;policy=pedantic';),
match => sub {
my ($self, $test_case, $namespace, $category, $variant) = @_;
...
},
name => "Gofer Transport",
},
);
}
package DBI::Test::Your::Namespace::Case::Your::First;
... # will be t/your/namespace/your/first.t
package DBI::Test::Your::Namespace::Case::Your::Second;
... # will be t/your/namespace/your/second.t
1;
And enhance DBI::Test with own test cases.
DESCRIPTION¶
This module aims to be a test suite for the DBI API and an underlying DBD
driver, to check if the provided functionality is working and complete.
Part of this module is the ability for self-testing using
DBI::Mock. This
is not designed to be another
DBI::PurePerl - it's designed to allow
tests can be verified to work as expected in a sandbox. This is, of course,
limited to DBI API itself and cannot load any driver nor really execute any
action.
EXPORTS¶
connect_ok¶
$dbh = connect_ok($dsn, $user, $pass, \%attrs, $test_name);
connect_ok invokes DBI-> and proves the result in an
ok. The created
database handle ($dbh) is returned, if any.
connect_not_ok¶
$dbh = connect_not_ok($dsn, $user, $pass, \%attrs, $test_name);
connect_not_ok invokes DBI-> and proves the result in an
ok (but
expects that there is no $dsn returned). The created database handle ($dbh) is
returned, if any.
prepare_ok¶
$sth = prepare_ok($dbh, $stmt, \%attrs, $test_name);
prepare_ok invokes $dbh->prepare and proves the result in an
ok. The
resulting statement handle ($sth) is returned, if any.
execute_ok¶
$rv = execute_ok($sth, $test_name);
$rv = execute_ok($sth, @bind_values, $test_name);
execute_ok invokes $sth->excute and proves the result via
ok. The
value got from $sth->execute is returned.
execute_not_ok¶
$rv = execute_not_ok($sth, $test_name);
$rv = execute_not_ok($sth, @bind_values, $test_name);
execute_not_ok invokes $sth->excute and proves the result via
is(undef). The value got from $sth->execute is returned.
do_ok¶
$rv = do_ok($dbh, $test_name);
$rv = do_ok($dbh, @bind_values, $test_name);
do_ok invokes $dbh->do and proves the result via
ok. The value got
from $dbh->do / $sth->execute is returned.
do_not_ok¶
$rv = do_not_ok($dbh, $test_name);
$rv = do_not_ok($dbh, @bind_values, $test_name);
do_not_ok invokes $dbh->do and proves the result via
is(undef). The
value got from $dbh->do / $sth->execute is returned.
GOAL¶
TODO¶
Source¶
Recent changes can be (re)viewed in the public GIT repository at GitHub
<
https://github.com/perl5-dbi/DBI-Test> Feel free to clone your own
copy:
$ git clone https://github.com/perl5-dbi/DBI-Test.git DBI-Test
We are discussing issues on the DBI development mailing list 1) and on IRC 2)
1) The DBI team <dbi-dev@perl.org>
2) irc.perl.org/6667 #dbi
SUPPORT¶
You can find documentation for this module with the perldoc command.
perldoc SQL::Statement
You can also look for information at:
- •
- RT: CPAN's request tracker
<http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBI-Test>
- •
- AnnoCPAN: Annotated CPAN documentation
<http://annocpan.org/dist/DBI-Test>
- •
- CPAN Ratings
<http://cpanratings.perl.org/s/DBI-Test>
- •
- CPAN Search
<http://search.cpan.org/dist/DBI-Test/>
Reporting bugs¶
If you think you've found a bug then please read "How to Report Bugs
Effectively" by Simon Tatham:
<
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html>.
Your problem is most likely related to the specific DBD driver module you're
using. If that's the case then click on the 'Bugs' link on the
<
http://metacpan.org> page for your driver. Only submit a bug report
against the DBI::Test itself if you're sure that your issue isn't related to
the driver you're using.
TEST SUITE¶
DBI::Test comes with some basic tests to test itself and DBI::Mock. The same
tests are used for basic DBI self-tests as well as testing the SQL::Statement
mock driver.
EXAMPLES¶
??? Synopsis ???
DIAGNOSTICS¶
???
SEE ALSO¶
DBI - Database independent interface for Perl
DBI::DBD - Perl DBI Database Driver Writer's Guide
Test::More - yet another framework for writing test scripts
AUTHOR¶
This module is a team-effort. The current team members are
H.Merijn Brand (Tux)
Jens Rehsack (Sno)
Peter Rabbitson (ribasushi)
Joakim TE<0x00f8>rmoen (trmjoa)
COPYRIGHT AND LICENSE¶
Copyright (C)2013 - The DBI development team
You may distribute this module under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.