Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Doctrine Orm Test Service Provider Laravel Package

matthiasnoback/doctrine-orm-test-service-provider

PHPUnit service provider for testing Doctrine ORM with a test service container. Adds a per-test SQLite connection, builds schema automatically from your entity directories, and exposes EntityManager, EventManager, and Connection for fast unit/integration tests.

View on GitHub
Deep Wiki
Context7

Doctrine ORM service provider for unit tests

CI

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

Usage

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.

<?php

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();
        $user->setName('Matthias');

        $this->getEntityManager()->persist($user);
        $this->getEntityManager()->flush();
    }
}

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

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor