---
name: "DBICx::TestDatabase::Subclass"
section: "3pm"
platform: "linux"
package: "libdbicx-testdatabase-perl"
version: "0.05-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBICx::TestDatabase::Subclass"
---

# DBICx::TestDatabase::Subclass(3pm)

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

## 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.
