Jak wykorzenić usługę Symfony 2 w teście funkcjonalnym?

Mam usługę symfony, która używa połączenia redis w niektórych metodach, ale nie we wszystkich metodach.

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
}

Piszę test funkcjonalny dla kodu, który używa tylko metody getRequest (ta metoda nie wymaga połączenia redis), ale ponieważ konstruktor przyjmuje połączenie jako argument, po uruchomieniu testu próbował połączyć serwer redis.

Jak mogę napisać próbną usługę, która w ogóle nie używa połączenia redis i ignoruje oryginalny konstruktor.

Próbuję podejścia wymienionego poniżej, ale bez powodzenia. Nadal próbuje połączyć redis, mimo że wyłączyłem oryginalny konstruktor.

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);

questionAnswers(4)

yourAnswerToTheQuestion