Symfony uygulamasında test verilerini yüklemek için doktrin fikstürleri kullanıyorum.Symfony WebTestCase'de testteki fikstür türüne göre doktrin fikstür referansları nasıl alınır?
$this->fixtureLoader = $this->loadFixtures([
"My\DemonBundle\DataFixtures\ORM\LoadEntity1Data",
"My\DemonBundle\DataFixtures\ORM\LoadEntity2Data",
"My\DemonBundle\DataFixtures\ORM\LoadEntity3Data",
"My\DemonBundle\DataFixtures\ORM\LoadEntity4Data",
"My\DemonBundle\DataFixtures\ORM\LoadEntity5Data",
'My\DemonBundle\DataFixtures\ORM\LoadEntity6Data'
]);
Test durumumda, paginated varlıkları test etmek istiyorum.
public function testGetPaginated()
{
$entities6 = $this->fixtureLoader->getReferenceRepository()->getReferences();
$expected = array_slice($entities6, 3, 3);
$this->client = static::makeClient();
$this->client->request('GET', '/api/v1/entities6', ["page" => 2, "limit" => 3, "order" => "id", "sort" => "asc"], array(), array(
'CONTENT_TYPE' => 'application/json',
'HTTP_ACCEPT' => 'application/json'
));
$this->assertSame($expected, $this->client->getResponse()->getContent());
}
Armatürlerimden ve api yanıtından sayfayı karşılaştırmak istiyorum. Sorun, satırın altındaki tüm fikstür referanslarını döndürür. Test etmek istediğim varlık Entity6 türündendir. Entity6'nın diğer tüm türlere bağımlılığı var, bu yüzden hepsini yüklemem gerekiyor.
$ entities = $ this-> fixtureLoader-> getReferenceRepository() -> getReferences();
Yalnızca Entity6 türündeki öznitelikleri nasıl alabilirim? Ben türdeki başvuru edinmek için seçeneği yoktur
Doktrin \ Common \ DataFixtures \ ReferenceRepository :: getReferences kodu
/**
* Get all stored references
*
* @return array
*/
public function getReferences()
{
return $this->references;
}
içine kazılırken. Ben vekil doktrin müteşebbis yüzden sınıf tip I doktrin armatürleri gelen varlık türü başvuruları nasıl alabilirim
Proxies\__CG__\My\DemonBundle\Entity\ORM\Entity6
alıyorum olan get_class
foreach ($references as $reference) {
$class = get_class($obj);
if ($class == "My\DemonBundle\Entity\ORM\Entity6") {
$expected[] = $obj;
}
}
Ama referansları kullanarak sınıf türünü kontrol etmek bütün referanslara döngü çalıştı ? Proxies__CG__ öneklemesi bunu yapmanın en iyi yolu olmayabilir? En güvenilir yol nedir? get_class
kullanmayın