Testando com Sessões (Symfony2)

Hoje encontrei um problema com nossos testes de phpunit para nosso projeto symfony2. Estávamos tendo problemas com ‘ErrorException: Notice: A session já foi iniciada – ignorando session_start ()’.

Depois de pesquisar no Google, descobri que não devemos criar nosso próprio mock como fizemos aqui

$session = $this
->getMockBuilder('SymfonyComponentHttpFoundationSessionSession')
->setMethods(array('getId','get'))
->getMock();
$session

->expects($this->any())
->method('getId')
->will($this->returnValue(md5(date('YmdHihs'))));

Mas o symfony agora tem seu próprio mock para criar uma sessão.

use SymfonyComponentHttpFoundationSessionStorageMockArraySessionStorage;
use SymfonyComponentHttpFoundationSessionSession;

$session
= new Session(new MockArraySessionStorage());

Outro problema resolvido na minha época como desenvolvedor júnior

Fonte: http://symfony.com/doc/current/components/http_foundation/session_testing.html

Todas as minhas dicas foram movidas para o meu blog www.pix-art.be, então venha conferir!