Возьмите предмет крепления по ссылке в nelmio-alice - PullRequest
0 голосов
/ 22 марта 2019

У меня есть набор приборов (вот упрощение):

My\Entity\User:
  user_{1..10}:
    name: <firstName()>

My\Entity\Item:
  item_{1..10}:
    user: '@user_$current'
    data: <numberBetween(111111111, 999999999)>

Я хочу получить Item с идентификатором 4 внутри моего функционального теста phpunit.

Iне могу быть уверен, что автоинкрементный идентификатор запускается с 1. Это не 1 после TRUNCATE.Так что это неверно :

$item4 = $this->em->getRepository(Item::class)->find(4);

Как я могу получить ссылку на item_4?

1 Ответ

1 голос
/ 22 марта 2019

Вы можете получить объекты, сгенерированные из файла фикстур, прямо из загрузчика:

$loader = new Nelmio\Alice\Loader\NativeLoader();
$objectSet = $loader->loadFile(__DIR__.'/fixtures.yml');

$objectSet должен содержать все ваши сущности по их псевдонимам, чтобы вы могли получить определенный элемент и напрямую работать с ним или получить его снова, используя свой репозиторий

$fixtureItem4 = $objectSet['item_4'];
$persistedItem4 = $this->em->getRepository(Item::class)->find($fixtureItem4->getId());
...