PhpUnit – mock – set interne protected / private variable

Publicités

En utilisant des mock il est souvent nécessaire de donner une valeur a une variable private ou protected. Pour ce faire il suffit d’utiliser la classe Reflection.

$basket = $this->getMockBuilder('Basket')
    ->disableOriginalConstructor()
    ->getMock();
$basketReflection = new ReflectionClass($basket);
$sessionId = $basketReflection->getProperty('sessionId');
$sessionId->setAccessible(true);
$sessionId->setValue($basket,'abc');

ainsi la valeur de sessionId dans notre Mock sera de ‘abc’.

Publicités

Laisser un commentaire