脚本宝典收集整理的这篇文章主要介绍了访问phpunittest中的实体管理器,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP // src/Acme/DemoBundle/tests/UtilITy/CalculatorTest.PHP namespace ShopIoUs\MainBundle\Tests; class ShippingCostTest extends \PHPUnit_Framework_TestCase { public function testShippingCost() { $em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); $query = $em->createQueryBuilder(); $query->select('c') ->From("ShopIoUSUSErBundle:City",'c'); $result = $query->getQuery()->getResult(); var_dump($result); } }
Undefined PRoPErty: Acme\MainBundle\Tests\ShippingCostTest::$kernel
<?PHP namespace ShopIoUs\MainBundle\Tests; require_once dirname(__DIR__).'/../../../app/AppKernel.PHP'; /** * Test case class helpful with Entity tests requiring the database interaction. * For regular entity tests it's better to extend standard \PHPUnit_Framework_TestCase instead. */ abstract class KernelAwareTest extends \PHPUnit_Framework_TestCase { /** * @VAR \Symfony\component\HttpKernel\Kernel */ protected $kernel; /** * @var \Doctrine\ORM\EntityManager */ protected $entityManager; /** * @var \Symfony\Component\DependencyInjection\Container */ protected $container; /** * @return null */ public function SETUP() { $this->kernel = new \AppKernel('test',true); $this->kernel->boot(); $this->container = $this->kernel->getContainer(); $this->entityManager = $this->container->get('doctrine')->getManager(); $this->generateSchema(); parent::setUp(); } /** * @return null */ public function tearDown() { $this->kernel->shutdown(); parent::tearDown(); } /** * @return null */ protected function generateSchema() { $Metadatas = $this->getMetadatas(); if (!empty($Metadatas)) { $tool = new \Doctrine\ORM\Tools\SchemaTool($this->entityManager); $tool->dropSchema($Metadatas); $tool->createSchema($Metadatas); } } /** * @return array */ protected function getMetadatas() { return $this->entityManager->getMetadataFactory()->getAllMetadata(); } }
那么你自己的测试类将从这个扩展:
<?PHP namespace ShopIoUs\MainBundle\Tests; use ShopIoUs\MainBundle\Tests\KernelAwareTest; class ShippingCostTest extends KernelAwareTest { public function setUp() { parent::setUp(); // Your own setUp() goes here } // Tests themselves }
然后使用父类的方法.在您的情况下,要访问实体管理器,请执行:
$entityManager = $this->entityManager;
以上是脚本宝典为你收集整理的访问phpunittest中的实体管理器全部内容,希望文章能够帮你解决访问phpunittest中的实体管理器所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。