Symfony 2 Функциональный тест

Я столкнулся с проблемой, которая не слишком логична для меня в одном из моих функциональных тестов.

Тест довольно прост, он просто запрашивает домашнюю страницу и ищет элемент с определенным классом в нем.

Домашняя страница предназначена для блога, который отображает список статей. И каждая статья может иметь несколько страниц («один ко многим»), каждая со своим изображением.

На домашней странице (в ветке) я делаю $ article-> getPages () -> first () -> getImageUrl ().

Если я использую те же приборы и получаю доступ к странице из браузера, все отображается так, как должно, но при запуске теста выдается исключение «Не удалось получить доступ к getImageUrl для неизвестного объекта», что заставляет меня думать, что статья не тянет страницы из БД.

Чтобы сделать это еще более странным, если я запрашиваю у себя в БД статьи прямо в тесте и перебираю статьи, с которыми они все работают ($ article-> getPages () -> first () -> getImageUrl ()). Только при использовании вызова self :: $ client-> request () это не работает.

Я проверил фикбле, я даже добавил явный innerJoin () в построитель запросов и вручную проверил, что база данных имеет правильные данные.

Кроме того, у меня есть другие функциональные тесты, которые загружают свои собственные приборы, и все они работают, кроме этого.

Это код моего теста ниже. Сбой как при запуске, так и при выполнении всего набора тестов.

public function testSocialBoxPositionWithFeatured()
{
self::runCommand('h4cc_alice_fixtures:load:files --drop src/SNN/AdminBundle/Fixtures/Nelmio.yml');

$crawler = self::$client->request('GET', '/'); //go to homepage

$classes = $crawler
->filter('.postsContainer > .col-md-4')
->eq(5)
->children()
->first()
->attr("class");

$this->assertContains("socialBox", $classes);
}

Заранее спасибо,

1

Решение

Я обнаружил, что очистка менеджера сущностей делает мой тест работоспособным … поэтому я просто добавил self :: $ client-> getContainer () -> get (‘doctrine’) -> getManager () -> clear ();

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]