Simple DB fixtures loading, replacement for phpunit/dbunit
use IW\PHPUnit\DbFixtures\DbFixturesTrait;
use IW\PHPUnit\DbFixtures\Fixtures;
final class MyTest extends TestCase
{
use DbFixturesTrait;
// returns connections to your DB, implementation is up to you, a singleton should be returned probably
protected function getConnections(string $connectionName): array {
return match ($connectionName) {
// key is name of DB, use it for distinction between multiple DBs
'mysql' => new \PDO(...),
'elastic' => new Elasticsearch\Client(...),
};
}
#[Fixtures('mysql', 'read-only', 'fixtures.yml')]
public function testWithFixtures() {
// before test data from fixtures.yml will be loaded into mysql
}
}