The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DBICTest - Library to be used by DBIx::Class test scripts.

SYNOPSIS

  use lib qw(t/lib);
  use DBICTest;
  use Test::More;

  my $schema = DBICTest->init_schema();

DESCRIPTION

This module provides the basic utilities to write tests against DBIx::Class.

METHODS

init_schema

  my $schema = DBICTest->init_schema(
    no_deploy=>1,
    no_populate=>1,
    storage_type=>'::DBI::Replicated',
    storage_type_args=>{
      balancer_type=>'DBIx::Class::Storage::DBI::Replicated::Balancer::Random'
    },
  );

This method removes the test SQLite database in t/var/DBIxClass.db and then creates a new, empty database.

This method will call deploy_schema() by default, unless the no_deploy flag is set.

Also, by default, this method will call populate_schema() by default, unless the no_deploy or no_populate flags are set.

deploy_schema

  DBICTest->deploy_schema( $schema );

This method does one of two things to the schema. It can either call the experimental $schema->deploy() if the DBICTEST_SQLT_DEPLOY environment variable is set, otherwise the default is to read in the t/lib/sqlite.sql file and execute the SQL within. Either way you end up with a fresh set of tables for testing.

populate_schema

  DBICTest->populate_schema( $schema );

After you deploy your schema you can use this method to populate the tables with test data.