NAME Test::DBIC - Facilitates Automated Testing for DBIx::Class SYNOPSIS In your test script add this block: BEGIN { use Test::DBIC; eval 'require DBD::SQLite'; if ($@) { plan skip_all => 'DBD::SQLite not installed'; } else { plan tests => 1; # change this to the correct number of tests } }; my $schema = Test::DBIC->init_schema( sample_data_file => 't/var/sample_data.txt', ); DESCRIPTION This module facilitates testing of DBIx::Class components. It is planned that this module will supercede or be superceeded by the testing module distributed within DBIx::Class. The hope is for this merge to happen in the 0.09x release of DBIx::Class. This module allows you to use the testing functionality before it is released as a core component of DBIx::Class. In other words, the API might change, but if you need to test, this module is available as a bleeding-edge version before the next major version of DBIx::Class is released. Methods db_dir Gets/sets the directory where SQLite database files will be stored. Test::DBIC->db_dir(catdir('t', 'var')); db_file Gets/sets the name of the main SQLite database file. Test::DBIC->db_file('test.db'); init_schema Removes the test database under "db_dir" and then sets up a new test database and returns a DBIx::Class schema object for your test to use. Parameters are: existing_namespace Look for ResultSource (table definition) classes under this namespace, rather than in the schema namespace specified by "schema_class". namespace Subclass ResultSet objects into this namespace. Objects that you get back will be under this namespace. no_deploy If true, will not set up a test database nor populate it with sample data. sqlt_deploy If true, will call the experimental $schema->deploy(). Also triggered if the DBICTEST_SQLT_DEPLOY environment variable is set. The default is to read the file t/lib/sqlite.sql and execute the SQL within. eval_deploy If true, and if using "sqlt_deploy", will not die when the test database fails to initialize. no_populate If true, will not populate the test database with sample data. clear If true, will delete any existing data in the test database before populating with sample data. sample_data Specifies data to use when populating the test database. The format is: 'sample_data' => [ ResultSourceName => [ ['column1', 'column2', 'column3'], ['data1', 'data2', 'data3'], ['data1', 'data2', 'data3'], ], ResultSourceName => [ ... ], ], The ResultSourceName is the string passed to $schema->resultset. sample_data_file Specifies a file which contains data to use when populating the test database. The format for the file is: ResultSourceName column1, column2, column3 data1, data2, data3 data1, data2, data3 --- ResultSourceName ... The ResultSourceName is the string passed to $schema->resultset. Data for multiple tables may be specified, with a separator line of "---" between them. schema_class The name of the DBIx::Class schema to use. Defaults to "Test::DBIC::Schema". deploy_schema Called by "init_schema". Creates tables in the test database. clear_schema Called before populating the test database, if "clear" has been set to true. Deletes data from known tables. populate_schema Called by "init_schema". Loads sample data into the test database. SEE ALSO DBIx::Class AUTHOR Nathan Gray based on DBICTest (from the testsuite of DBIx::Class) and DBIC::Test (from the testsuite of DBIx::Class::InflateColumn::Currency) COPYRIGHT AND LICENSE Copyright (C) 2007 by Nathan Gray This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.