DBICx::TestDatabase::Subclass.3pm

Langue: en

Autres versions - même langue

Version: 2007-10-07 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

DBICx::TestDatabase::Subclass - a DBICx::TestDatabase you can add your own methods to

SYNOPSIS

Your test database subclass:
    package MyApp::TestDatabase
    use base qw(DBICx::TestDatabase::Subclass MyApp::Schema);
 
    sub foo { 
       my $self = shift;
       return $self->resultset('Foo')->create({ foo => 'bar' });
    }
 
 

Later:

    use MyApp::TestDatabase;
    my $schema = MyApp::TestDatabase->connect;
    my $foo_row = $schema->foo; # MyApp::TestDatabase::foo
    my $bars = $schema->resultset('Bar'); # MyApp::Schema::resultset
 
 

DESCRIPTION

Sometimes DBICx::TestDatabase doesn't give you enough control over the object returned. This module lets you create a custom test database class.

METHODS

connect

This method creates the temporary database and returns the connection. If your subclass needs to change the way connect works, do something like this:
     sub connect {
         my ($class) = @_;
 
         say 'This happens before we create the test database.';
         my $schema = $class->next::method;
         say '$schema is the temporary test database';
        
         return $schema;
     }
 
 

SEE ALSO

If you want a simple test database based on a DBIC schema, just use DBICx::TestDatabase.

AUTHOR

Jonathan Rockway "<jrockway@cpan.org>"

LICENSE

Copyright (c) 2007 Jonathan Rockway.

This program is free software. You may use, modify, and redistribute it under the same terms as Perl itself.