Como zombar do serviço Symfony 2 em um teste funcional?
Eu tenho o serviço symfony que usa a conexão redis em alguns métodos, mas não em todos os métodos.
class ServiceA
{
private $redis;
public function __construct($redis)
{
$this->redis = $redis;
}
public function getRequest($param1, $param2)
{
$result = $param1+ $param2;
return $request;
}
.. other methods which use $redis connection
}
Eu estou escrevendo teste funcional para o código que usa apenas o método getRequest (este método não precisa de conexão redis), mas como o construtor toma a conexão como um argumento, quando eu executo o teste ele tentou se conectar ao servidor redis.
Como eu posso escrever um serviço simulado que não usa conexão redis e ignorar o construtor original.
Eu estou tentando abordagem mencionada abaixo, mas sem sucesso. Ele ainda tenta se conectar, mesmo que eu tenha desabilitado o construtor original.
http://blog.lyrixx.info/2013/04/12/symfony2-how-to-mock-services-during-functional-tests.html
$serviceA = $this->getMockBuilder('ServiceA')
->disableOriginalConstructor()
->getMock();
static::$kernel->getContainer()->set('my_bundle.service.a', $serviceA);