Hvordan få EntityManager innsiden av webtestcases i Symfony2

stemmer
18

Jeg lurte på hvordan jeg kunne hente entitymanager innsiden av en WebTestCase eksempel.

for eksempel for å se om en enhet ble virkelig opprettet i DB under testrun.

Noen ideer om at?

Publisert på 19/04/2011 klokken 12:36
kilden bruker
På andre språk...                            


4 svar

stemmer
28

Du kan hente DIC (Dependency Injection Container) gjennom Kernel, som er et beskyttet medlem av WebTestCase.

Du kan gjøre dette fra din WebTestCase:

$em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager');

Oppdater

Fra din egen kommentar, det er enda en snarvei for dette (siden du vil ha en klient uansett):

$client = $this->getClient();
$container = $client->getContainer();

Som nevnt i docs .

Svarte 20/04/2011 kl. 11:16
kilden bruker

stemmer
6

Hvis du har din klient kan du få Entity Manager fra det

$em = $client->getContainer()->get('doctrine.orm.entity_manager');

ikke bruk getEntityManager er foreldet siden Symfony 2.1.

Nyt :)

Svarte 04/12/2014 kl. 09:02
kilden bruker

stemmer
0

Ting har endret seg, og jeg ønsker å legge en oppdatering gjelder for Symfony 4.

Hvis du trenger tilgang til tjenester i testene du fortsatt trenger å få containeren først. Dette kan gjøres slik ut:

$container = self::$container;

Nå kan du få en tjeneste, i dette eksempelet foretaket leder :

$this->em = = $container->get('doctrine.orm.entity_manager');

Jeg bruker $thisforutsatt at uttalelsen er skrevet i setUpmetoden og nødvendig i andre testmetoder.

Den aktuelle delen av den offisielle Symfony dokumentasjon.

Svarte 05/03/2019 kl. 09:14
kilden bruker

stemmer
0
$this->container->get('doctrine.orm.entity_manager');
Svarte 21/09/2016 kl. 15:31
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more