在 nelmio-alice 中通过引用获取 fixture item
Take fixture item by reference in nelmio-alice
我有一组固定装置(这里是一个简化):
My\Entity\User:
user_{1..10}:
name: <firstName()>
My\Entity\Item:
item_{1..10}:
user: '@user_$current'
data: <numberBetween(111111111, 999999999)>
我想在我的 phpunit 功能测试中获取 ID 为 4
的 Item
。
我不能确定自增ID是从1开始的,TRUNCATE
之后不是1。所以这是不正确的:
$item4 = $this->em->getRepository(Item::class)->find(4);
如何获得对 item_4
的引用?
您可以直接从加载程序中获取从 fixtures 文件生成的实体:
$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());
我有一组固定装置(这里是一个简化):
My\Entity\User:
user_{1..10}:
name: <firstName()>
My\Entity\Item:
item_{1..10}:
user: '@user_$current'
data: <numberBetween(111111111, 999999999)>
我想在我的 phpunit 功能测试中获取 ID 为 4
的 Item
。
我不能确定自增ID是从1开始的,TRUNCATE
之后不是1。所以这是不正确的:
$item4 = $this->em->getRepository(Item::class)->find(4);
如何获得对 item_4
的引用?
您可以直接从加载程序中获取从 fixtures 文件生成的实体:
$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());