DBICx::TestDatabase::Subclass - a DBICx::TestDatabase you can add your own methods to
Contents
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
