matthiasnoback / doctrine-dbal-test-service-provider
Service provider for tests in need of a Doctrine DBAL connection
Installs: 87 322
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 8
Open Issues: 0
Requires
- php: ^7.0 || ^8.0
- doctrine/dbal: ^2.4
- matthiasnoback/phpunit-test-service-container: ^3.1
- phpunit/phpunit: ^6.0 || ^7.0 || ^8.0 || ^9.0
This package is auto-updated.
Last update: 2024-10-11 02:18:10 UTC
README
This library contains a service provider to be used with a service container for PHPUnit tests.
Usage
Use the trait Noback\PHPUnitTestServiceContainer\PHPUnit\TestCaseWithDoctrineDbalConnection
in your test class.
You then need to implement the createSchema()
and return an instance of Doctrine\DBAL\Schema\Schema
.
For each test method a database connection (of instance Doctrine\DBAL\Connection
) will be available. Also the schema
returned by createSchema()
will be created in the database. The database itself is (by default) an SQLite in-memory
database, which will leave no traces on the filesystem.
<?php use Noback\PHPUnitTestServiceContainer\PHPUnit\TestCaseWithDoctrineDbalConnection; use Doctrine\DBAL\Schema\Schema; final class StorageTest { use TestCaseWithDoctrineDbalConnection; /** * @test */ public function something() { $connection = $this->getConnection(); $connection->insert('some_table', array('some_column' => 'value')); ... } protected function createSchema() { $schema = new Schema(); $table = $schema->createTable('some_table'); $table->addColumn('some_column', 'string'); return $schema; } }