У меня есть следующий метод в моем хранилище, и я хочу, чтобы проверить еготест хранилище в Symfony
public function myFindOne($id)
{
// On passe par le QueryBuilder vide de l'EntityManager pour l'exemple
$qb = $this->_em->createQueryBuilder();
$qb->select('a')
->from('xxxBundle:entity', 'a')
->where('a.id = :id')
->setParameter('id', $id);
return $qb->getQuery()
->getResult();}
Я нашел следующий код в документации, но я не мог понять его
// src/Acme/StoreBundle/Tests/Entity/ProductRepositoryFunctionalTest.php
namespace Acme\StoreBundle\Tests\Entity;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ProductRepositoryFunctionalTest extends WebTestCase
{
/**
* @var \Doctrine\ORM\EntityManager
*/
private $em;
/**
* {@inheritDoc}
*/
public function setUp()
{
static::$kernel = static::createKernel();
static::$kernel->boot();
$this->em = static::$kernel->getContainer()
->get('doctrine')
->getManager()
;
}
public function testSearchByCategoryName()
{
$products = $this->em
->getRepository('AcmeStoreBundle:Product')
->searchByCategoryName('foo')
;
$this->assertCount(1, $products);
}
/**
* {@inheritDoc}
*/
protected function tearDown()
{
parent::tearDown();
$this->em->close();
}
}
Так же, как примечание, если вам нужен один элемент по идентификатору или любой другой области, вы можете просто использовать '$ this- -> getDoctrine() -> getRepository ('AcmeStoreBundle: Product') -> findOneById ($ id) '. (вы можете заменить 'findOneById' на' findOneByName' или любое другое имя поля, которое вы хотите использовать.) – cheesemacfly
, а как насчет tearDown и так далее? @cheesemacfly –
Другой вопрос также в том, как его выполнить? @cheesemacfly –