Service provider for tests in need of a Doctrine entity manager

v3.0.0 2017-10-04 07:43 UTC


Build Status

This library contains a service provider to be used with a service container for PHPUnit tests.


Use the trait Noback\PHPUnitTestServiceContainer\PHPUnit\TestCaseWithEntityManager in your test class. You then need to implement the getEntityDirectories() which should return an array of the directories containing the entities that should be loaded.

For each test method a connection to an SQLite database will be available. Also the schema for the given entities will be created automatically.


use PHPUnit\Framework\TestCase;
use Noback\PHPUnitTestServiceContainer\PHPUnit\TestCaseWithEntityManager;

class StorageTest extends TestCase 
    use TestCaseWithEntityManager;
    protected function getEntityDirectories(): array
        return array(
            __DIR__ . '/Entity'

     * @test
    public function it_persists_an_entity()
        $user = new User();


Of course, you would usually inject the entity manager into some object which is the subject-under-test.

To register Doctrine event listeners/subscribers, get the EventManager instance by calling $this->getEventManager(). To get the database Connection object, call $this->getConnection().

Read more