logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Jonathan Rockway "<jrockway@cpan.org>"

Description

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

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.

perl v5.34.0                                       2022-06-13                 DBICx::TestDatabase::Subclass(3pm)

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;
           }

Name

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

See Also

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

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

See Also