DBI::Test(3pm)

DBI::Test3pm

Test suite for dbi api

Usage

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.

Overview

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

Contact

We are discussing issues on the DBI development mailing list 1) and on IRC 2)

 1) The DBI team <[email protected]>
 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

???

Releases

6 releases since Debian 8 (Jessie); the text changed 2 times.

  1. 8–10
  2. 11
  3. 12–13

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)

From libdbi-test-perl 0.001-4 in Debian 13 (Trixie). Parsed by carta from the page's man source.