Wie macht man sich in einem Funktionstest über den Symfony 2-Dienst lustig?

Ich habe Symfony-Dienst, der Redis-Verbindung in einigen Methoden, aber nicht in allen Methoden verwendet.

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
}

Ich schreibe einen Funktionstest für den Code, der nur die getRequest-Methode verwendet (diese Methode benötigt keine Redis-Verbindung), aber da der Konstruktor die Verbindung als Argument verwendet, hat er beim Ausführen des Tests versucht, eine Verbindung zum Redis-Server herzustellen.

Wie kann ich einen Mock-Service schreiben, der überhaupt keine Redis-Verbindung verwendet und den ursprünglichen Konstruktor ignoriert?

Ich versuche Ansatz erwähnt, aber keinen Erfolg. Es wird weiterhin versucht, die Verbindung wiederherzustellen, obwohl ich den ursprünglichen Konstruktor deaktiviert habe.

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage