Я только что обновил действие контроллера в проекте Symfony 3.4, чтобы использовать службы для отправки электронной почты и очистки данных (пытаясь достичь хорошей практики использования как можно меньшего количества кода в контроллере).
Поскольку я это сделал что мой функциональный тест, который раньше был в порядке, больше не работает, и я не могу понять, почему ...
Пример: действительно простой тест, проверяющий, если вы публикуете sh форму без какого-либо содержимого Вы получаете сообщение об ошибке колбы.
public function testPublicationEmptyAnnonce() {
$client = $this->makeClient();
$crawler = $client->request('GET', '/portail/clienttest/publier');
$form = $crawler->selectButton('annonce_save')->form();
$crawler = $client->submit($form);
$this->assertEquals(200, $client->getResponse()->getStatusCode());
$this->assertSame(1, $crawler->filter('html:contains("petit message")')->count());
}
Если я попробую самостоятельно в браузере, все будет хорошо, сообщение флэш-сумки будет напечатано. Если я использую phpUnit для запуска теста, сообщение flashbag никогда не печатается.
Вот часть действия Контролера, ответственного за это.
/**
* @Route("/portail/{clientname}/publier", name="portail_publier")
* @Template("CovoituragesimpleAnnonceBundle:Portail:deposer.html.twig")
*/
public function publierAction($clientname, Request $request)
{
//getting services to check url and send transaction email
$datechecker = $this->container->get('app.utils.datechecker');
$notification = $this->container->get('app.utils.notificationservice');
[...] // Sanitizing entries via datechecker
// create form
$formajoutannonce = $this->createForm(...);
[...] //handle form if valid
// handle form if not valid
} else if($formajoutannonce->isSubmitted() && !$formajoutannonce->isValid()){
//get value of form
$annonce = $formajoutannonce->getData();
$request->getSession()->getFlashBag()->add(
'error',
'This sentence is found in a browser but not when running the test with phpunit'
);
}
return array(
[...]
'form' => $formajoutannonce->createView()
);
}
Может кто-нибудь помочь мне или выслать мне материал для чтения? В моем случае нет перенаправления ... Заранее спасибо.