The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Test::DBIx::Class::Schema - DBIx::Class schema sanity checking tests

VERSION
    version 1.0.0

SYNOPSIS
    Create a test script that looks like this:

        #!/usr/bin/perl
        # vim: ts=8 sts=4 et sw=4 sr sta
        use strict;
        use warnings;

        # load the module that provides all of the common test functionality
        use Test::DBIx::Class::Schema;

        # create a new test object
        my $schematest = Test::DBIx::Class::Schema->new(
            {
                # required
                dsn       => 'dbi:Pg:dbname=mydb',
                namespace => 'MyDB::Schema',
                moniker   => 'SomeTable',
                # optional
                username  => 'some_user',
                password  => 'opensesame',
                # rather than calling diag will test that all columns/relationships
                # are accounted for in your test and fail the test if not
                test_missing => 1,
            }
        );

        # tell it what to test
        $schematest->methods(
            {
                columns => [
                    qw[
                        id
                        column1
                        column2
                        columnX
                        foo_id
                    ]
                ],

                relations => [
                    qw[
                        foo
                    ]
                ],

                custom => [
                    qw[
                        some_method
                    ]
                ],

                resultsets => [
                    qw[
                    ]
                ],
            }
        );

        # run the tests
        $schematest->run_tests();

    Run the test script:

      prove -l t/schematest/xx.mydb.t

  done_testing
    Under normal circumstances there is no need to add "done_testing" to
    your test script; it's automatically called at the end of "run_tests()"
    *unless* you are running tests under Test::Aggregate.

    If you are running aggregated tests you will need to add

      done_testing;

    to your top-level script.

DESCRIPTION
    It's really useful to be able to test and confirm that DBIC classes have
    and support a known set of methods.

    Testing these one-by-one is more than tedious and likely to discourage
    you from writing the relevant test scripts.

    As a lazy person myself I don't want to write numerous near-identical
    scripts.

    Test::DBIx::Class::Schema takes the copy-and-paste out of DBIC schema
    class testing.

SEE ALSO
    DBIx::Class, Test::More, Test::Aggregate

CONTRIBUTORS
    Gianni Ceccarelli "<dakkar@thenautilus.net>", Darius Jokilehto, Jason
    Tang "<tang.jason.ch@gmail.com>"

AUTHOR
    Chisel Wright <chisel@chizography.net>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2012 by Chisel Wright.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.