matthiasnoback/doctrine-dbal-test-service-provider

Service provider for tests in need of a Doctrine DBAL connection

v3.2.1 2020-12-10 18:44 UTC

This package is auto-updated.

Last update: 2024-03-11 01:09:50 UTC


README

Build Status

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

Read more